我想了解以下信息:
Socket.BeginSend Method (array<Byte>[]()[], Int32, Int32, SocketFlags, AsyncCallback, Object)
client.BeginSend(message, 0, message.Length, SocketFlags.None, new AsyncCallback(SendData), client);
如果message.lenght大于buffersize(32),我是否必须多次调用BeginSend来传输整个数据包?
或者我只是在另一端进行多次读取,直到收到实际缓冲区长度的结束?
这是在实际实施之前阅读文档的讨论。
感谢。
答案 0 :(得分:4)
缓冲区大小不是32,正如定义的那样message.Length
。您可能会将Int32
与值32混淆。
在上述情况下,只要实际邮件大小小于2147483648(2 ^ 31),您就可以在一次调用中将其发送给该方法。
在接收端,你有几个选择:
Receive
调用返回小于完整的块大小。