目前在 ZMQ 中接收二进制消息时,我必须执行以下操作:
int maxMessageSize = 1024*500*16*
var buffer = new byte[maxMessageSize];
var messageLength = socket.Receive(buffer);
var message = new ArraySegment<byte>(buffer, 0, messageLength).ToArray();
这有一个主要问题:我必须提前知道最大消息大小,我不知道。消息的大小可以从 1KB 到 20MB 不等。有什么方法可以完全接收消息而不预定义缓冲区大小然后将其修剪成数组?