【发布时间】:2023-03-25 11:52:02
【问题描述】:
我正在使用Socket.BeginReceive 方法从连接的客户端接收数据。但是,我发送的消息的大小可能相差太大。例如,一条消息可能是 100,000 字节,另一条可能是 3 字节,而 100,000 字节的消息很少发送!有没有办法将BufferSize 的值设置为自动值,就像Socket.Receive 的用法一样?
【问题讨论】:
-
您误解了套接字的工作原理,请务必阅读基础知识。一次调用永远不会获得 100,000 个字节。 UDP 只能传输不大于 MTU 的消息。 TCP 无法处理消息,它实现了一个流。使用 4096 字节的缓冲区是一个不错的选择。
标签: c# asynchronous networking buffer