.net - 如何强制我的 C# 应用程序立即确认 TCP 数据报?

标签 .net tcp tcpclient

我尝试使用 TcpClient.NoDelay = true,但直到 200 毫秒后它仍然不会发回确认。我更改了网络适配器的 Windows 注册表设置以禁用 Nagle 算法,并且有效,ACK 立即发送。难道不应该有一种方法可以在不更改注册表设置的情况下禁用 200 毫秒延迟吗?

更新:感谢您对UDP的建议。我同意 UDP 是应用程序的正确协议(protocol),但不幸的是,我正在处理目前只有 TCP 接口(interface)的设备,所以我的手被束缚在那里。

最佳答案

ACK 数据包是底层操作系统的 TCP/IP 堆栈的内部工作问题。无论如何,您的应用程序不应受到 TCP 协议(protocol)的标准行为的损害。如果是,您应该考虑使用其他方式,例如 UDP。

关于.net - 如何强制我的 C# 应用程序立即确认 TCP 数据报?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5825061/

相关文章:

c# - 从 TcpClient 获取源 IP

.net - 具有多个 channel 的 rabbitmq 消费者导致重复消息

python - FTPES - 在 Python 中通过显式 TLS/SSL 的 FTP

c# - .NET 线程/接受 TCP 连接中导致 NullReferenceException 的原因是什么?

bash - 如何通过 TCP 匹配模式?

c# - NetworkStream.DataAvailable 与 TcpClient.Available

c# - TcpClient.Connect 说 "A connection attempt failed because the connected party..."

c# - 采用 MVC 4 或 5 的 MEF - 可插拔架构 (2014)

c# - 目录刷新期间遇到错误,未使用新的 dll

asp.net - AutoGenerateColumns ="true"时动态设置 gridview 列的宽度