C# 套接字发送缓冲区大小是否受限制?

C# 套接字发送缓冲区大小是否受限制?,c#,sockets,.net-2.0,C#,Sockets,.net 2.0,发送缓冲区大小是否有任何限制,我可以发送小数据包-即:1000字节- 然而,当我尝试发送大约20K时,什么也没有发生,remote将不会收到数据包 plus remote将不再接收任何数据 System.Net.Sockets.Socket.Send((byte)buffer); 作为docs状态,返回发送的字节数。然后发送剩余字节是您的责任。send()返回一个Int32,指示发送了多少字节。。因此可以推断缓冲区大小的上限是Int32.MaxValue 至于20k字节缓冲区出现问题的原因-您

发送缓冲区大小是否有任何限制,我可以发送小数据包-即:1000字节- 然而,当我尝试发送大约20K时,什么也没有发生,remote将不会收到数据包 plus remote将不再接收任何数据

System.Net.Sockets.Socket.Send((byte)buffer);
作为docs状态,返回发送的字节数。然后发送剩余字节是您的责任。

send()返回一个Int32,指示发送了多少字节。。因此可以推断缓冲区大小的上限是Int32.MaxValue


至于20k字节缓冲区出现问题的原因-您没有提供足够的信息进行猜测。

根据MSDN,Socket.SendBuffer默认缓冲区大小为8192。如果需要,您可以增加该值

tcpSocket.SendBufferSize = 8192;

“数据包”是一个UDP术语。UDP限制为最小MTU:缓冲区为1024:
socket.BeginReceive(sm.m_StreamManager.m_Buffer,0,Buffer_SIZE_1024,0,new AsyncCallback(this.ReadCallback),sm)