Socket.Send缓冲区大小是否有限?

时间:2011-04-07 21:04:42

标签: c# sockets .net-2.0

发送缓冲区大小是否有限制,我可以发送小包-i.e:1000字节 - 但是当我尝试发送大约20K没有任何反应时,遥控器将不会收到数据包 加上遥控器不会再收到任何数据。

System.Net.Sockets.Socket.Send((byte)buffer);

3 个答案:

答案 0 :(得分:4)

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

至于你为什么遇到20k字节缓冲区的问题 - 你没有提供足够的信息来猜测。

答案 1 :(得分:2)

正如文档所述,this method返回发送的字节数。然后你有责任发送剩余的字节。

答案 2 :(得分:1)

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

tcpSocket.SendBufferSize = 8192;