gpt4 book ai didi

c++ - 如何忽略 Windows 7 中的 TCP PSH 位?

转载 作者:可可西里 更新时间:2023-11-01 02:42:31 25 4
gpt4 key购买 nike

我有一个 C++ 程序,它使用 Boost ASIO 通过 TCP 套接字与网络设备通信。该程序在 Linux 上运行良好,但在 Windows 7 上我发现通信不是很好。经过一些实验后,我发现在使用 ASIO 示例 telnet 程序与设备通信时,命令和响应之间存在 0.5 秒的延迟,即使响应在 Wireshark 中显示得更快。

我发现问题是网络设备在完成一大块数据后没有设置 PSH 标志。请参阅:http://smallvoid.com/article/winnt-tcp-push-flag.html .

我需要以某种方式设置我的应用程序,以便它从 TCP 套接字接收数据,而不管数据包到达时是否设置了 PSH 位。我知道这一定是可能的,因为 PuTTY 可以与我的设备正常通信。我宁愿不使用注册表项来获得效果,因为我只想更改这个套接字的行为,而不是整个系统。

我需要做什么才能让 Windows 忽略此连接的 PSH 标志?

最佳答案

您可以尝试在接收端指定 MSG_PUSH_IMMEDIATE 标志 (https://msdn.microsoft.com/en-us/library/windows/desktop/ms741688(v=vs.85).aspx)。

关于c++ - 如何忽略 Windows 7 中的 TCP PSH 位?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33142218/

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