我有一个C++程序,它使用Boost通过TCP套接字与网络设备通信。该程序在Linux上运行良好,但在Windows7上,我发现通信不是很好。经过一些实验,我发现在使用ASIO示例telnet程序与设备通信时,命令和响应之间有0.5秒的延迟,即使响应在Wireshark中显示得更快。
我认为问题在于网络设备在完成一段数据后没有设置PSH标志。请参阅:http://smallvoid.com/article/winnt-tcp-push-flag.html
我需要以某种方式设置我的应用程序,以便它从TCP套接字接收数据,而不管数据包是否已到达并设置了PSH位。我知道这肯定是可能的,因为PuTTY可以与我的设备正常通信。我不想使用注册表键来获得效果,因为我只想更改这一个套接字的行为,而不是整个系统。
我需要做什么才能让Windows忽略此连接的PSH标志?
发布于 2015-10-17 06:43:10
https://stackoverflow.com/questions/33142218
复制相似问题