【发布时间】:2009-08-22 15:57:54
【问题描述】:
我遇到了 recv() 和 send() winsock api 的问题。 Recv() 在接收最后一个数据包时挂起。
问题描述:-
系统 A 的应用正在通过非阻塞套接字写入数据,而系统 B 的应用正在通过阻塞套接字接收 64k 块的数据。
似乎在读取可能小于或等于 64k 的最后一个 64k 数据包时,接收冻结。我不确定最后一个数据包的接收或最后一个数据包的发送是否存在问题,但我在我们的旧应用程序中间歇性地观察到此问题。
以前有没有人遇到过类似的问题?如果是,那么请提供您的意见。
如果没有,那么您能否提供一些故障排除技术来缩小根本原因。
仅供参考,我有 win2k3 服务器。
谢谢, 瓦伦
【问题讨论】:
-
您是通过 TCP 还是其他方式接收?你提到了数据包——这是 TCP 没有的概念——你不能接收 TCP 数据包——它只是一个流。
标签: c++ windows visual-c++