动态更改套接字的接收缓冲区大小

时间:2013-09-05 18:21:39

标签: c# sockets buffer

我有不同长度的字节数组从Windows桌面应用程序发送到另一台PC上的服务器上的Windows服务。我在C#中使用套接字。我想要做的是计算发送的字节数,并将该信息发送到服务器。服务器应用程序将调整接收缓冲区大小以适应从客户端发送到该服务器的字节数组。这是一个糟糕的想法还是一个好的想法,随着应用程序的进展动态改变接收缓冲区?

感谢

1 个答案:

答案 0 :(得分:1)

接收端缓冲区大小的作用是在应用程序读取的数据慢于网络可以发送的速率时缓冲数据包。如果发件人以突发方式发送数据,它也会有所帮助。因此,将其保持为几个MTU(10/20)的倍数应该足够好了。如果我理解正确,您正在尝试传送要发送的整个数据集(字节数组的长度)并使接收端缓冲区具有相同的大小 - 这当然不是必需的,如果您要发送的数据太大了!它效率低下的原因是因为操作系统必须为接收缓冲区分配那么多内存。