发送缓冲区大小是否有限制?我可以发送小的数据包 - 比如1000字节 - 但是当我尝试发送20K时,什么也不会发生,远程端点将无法接收到数据包,并且远程端点将不再能够接收到任何更多的数据。
System.Net.Sockets.Socket.Send((byte)buffer);
Send() 方法返回一个 Int32 类型的整数,指示发送了多少字节。因此,可以推断出缓冲区大小的上限为 Int32.MaxValue。
至于为什么您在使用 20k 字节缓冲区时遇到了问题 - 您没有提供足够的信息来猜测原因。
socket.BeginReceive(sm.m_StreamManager.m_Buffer, 0, BUFFER_SIZE_1024, 0, new AsyncCallback(this.ReadCallback), sm);
- Nime Cloud根据MSDN,Socket.SendBuffer的默认缓冲区大小为8192。如果需要,您可以增加此大小。
tcpSocket.SendBufferSize = 8192;