【发布时间】:2013-09-05 18:21:39
【问题描述】:
我有不同长度的字节数组要从 Windows 桌面应用程序发送到另一台 PC 上的服务器上的 Windows 服务。我在 C# 中使用套接字。我想做的是计算要发送的字节数并将该信息发送到服务器。服务器应用程序将调整接收缓冲区大小以适应从客户端发送到该服务器的字节数组。这是一个糟糕的想法还是一个好的想法,随着应用的进展动态地改变接收缓冲区?
谢谢
【问题讨论】:
我有不同长度的字节数组要从 Windows 桌面应用程序发送到另一台 PC 上的服务器上的 Windows 服务。我在 C# 中使用套接字。我想做的是计算要发送的字节数并将该信息发送到服务器。服务器应用程序将调整接收缓冲区大小以适应从客户端发送到该服务器的字节数组。这是一个糟糕的想法还是一个好的想法,随着应用的进展动态地改变接收缓冲区?
谢谢
【问题讨论】:
接收端缓冲区大小的作用是在应用程序读取数据的速度低于网络可以发送的速率时缓冲数据包。如果发送方以突发方式发送数据,它也会有所帮助。因此,将其保持为多个 MTU (10/20) 的倍数就足够了。如果我理解正确,您正在尝试传达您想要发送的整个数据集(字节数组的长度)并使接收端缓冲区大小相同——这当然没有必要,如果您要发送的数据太大!效率低下的原因是操作系统必须为接收缓冲区分配那么多内存。
【讨论】: