Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何应对纳格尔';带TcpClient的s算法?_C#_Tcpclient - Fatal编程技术网

C# 如何应对纳格尔';带TcpClient的s算法?

C# 如何应对纳格尔';带TcpClient的s算法?,c#,tcpclient,C#,Tcpclient,我正在阅读并注意到,在解决方案中,如果将数据的长度与实际数据分开发送,则Nagle的算法可能会播放并去同步发送的数据 我想知道这一点,因为我看到很多代码示例,客户机首先发送数据的长度,然后发送数据本身作为单独的调用。这个问题对他们没有影响吗 我是否应该将数据的长度和数据本身连接到一个单字节数组中,并一次性发送?如果是这样,有没有更好的方法连接两个字节数组,而不必手动将两个(循环)中的所有数据复制到新的数组中?对于经常发生的事情(每次用户或服务器彼此之间发送数据时),似乎效率很低。如果您使用节点延

我正在阅读并注意到,在解决方案中,如果将数据的长度与实际数据分开发送,则Nagle的算法可能会播放并去同步发送的数据

我想知道这一点,因为我看到很多代码示例,客户机首先发送数据的长度,然后发送数据本身作为单独的调用。这个问题对他们没有影响吗


我是否应该将数据的长度和数据本身连接到一个单字节数组中,并一次性发送?如果是这样,有没有更好的方法连接两个字节数组,而不必手动将两个(循环)中的所有数据复制到新的数组中?对于经常发生的事情(每次用户或服务器彼此之间发送数据时),似乎效率很低。

如果您使用
节点延迟
选项集创建了
套接字
,那么您就不会受到Nagle算法的影响;传递到
Send
的数据将立即发送

有鉴于此,在单个
Send
调用中传递单字节数组比单独调用更有效;对
Send
的每次调用都会有一个数据包头的开销