gpt4 book ai didi

c# - 如何使用 TcpClient 应对 Nagle 算法?

转载 作者:行者123 更新时间:2023-11-30 12:34:18 27 4
gpt4 key购买 nike

我正在阅读 this thread并在解决方案中注意到,如果您发送的数据长度与实际数据分开,Nagle 的算法可能会播放和取消同步发送的数据。

我想知道这一点,因为我看到很多代码示例,客户端首先发送数据的长度,然后发送数据本身作为单独的调用。这个问题是否以某种方式影响了他们?

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

最佳答案

如果您创建了一个设置了NoDelay 选项的Socket,那么您将不会受到Nagle 算法的影响;传递给 Send 的数据将立即发送。

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

关于c# - 如何使用 TcpClient 应对 Nagle 算法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7465623/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com