Socket.Send有延迟吗?

时间:2011-05-26 18:23:39

标签: c# sockets

我正在构建一个应用程序并将数据发送回另一方,

在我的申请中,我有:

System.Net.Sockets.Socket.Send(byte[])功能。

我的客户告诉我,有530 ms delay收到此数据包。但是,我已记录每个地方,直到:System.Net.Sockets.Socket.Send(byte[])

我测到从Socket发送一个数组花了大约15ms。我的客户建议我查一下:

  • 发送后要刷新,但我在Socket中看不到flush function
  • 在发送之前填写数据缓冲区,否则,如果数据很短,那么我必须force the transmission

这个建议之一是否正确?我看到方法Send还有另一个参数,即:SocketFlags< =有没有使用此SocketFlags的帮助?

1 个答案:

答案 0 :(得分:4)

Nagle算法存在一个常见问题,即试图将数据一起“粘合”到单个数据包中。您的代码可能也会受到影响。

尝试按照here所示的方式停用它,或者使用SocketOptionName.NoDelay方法设置SetSocketOption选项。