socket recv在Windows XP中挂起

时间:2015-01-13 04:29:29

标签: windows sockets

我已经通过USB在Android设备和Windows主机之间建立了TCP / IP套接字连接。用于连接的端口是8000/8001。这种通信模式在Windows 7和其他生态系统中运行良好,而在Windows XP 32位上,“recv”API无限期挂起。

我写了一个示例程序,其中服务器和客户端在Windows XP主机上运行,​​并且工作正常但是当涉及USB时会出现问题。我使用了一个嗅探器工具“USB分析器”工具来嗅探来自设备的数据,我看到数据进入设备但不知何时recv API无法捕获它。

我使用的代码存在于以下链接中: http://www.tenouk.com/Winsock/Winsock2example9.html

谢谢, 书呆子

编辑:此问题仅在Windows XP 32位上发生,而不在64位上发生。

Edit2:我发现了一个黑客攻击,在建立连接后,服务器会立即发送虚拟数据,客户端将捕获它。如果这样做,那么recv将不再进一步挂起。有关为何需要这一点的任何线索?

1 个答案:

答案 0 :(得分:0)

在recv之前添加一些延迟(100毫秒)可以解决此问题。但我不知道为什么会发生这种情况的确切原因。