各位牛请留步,问一个IOCP的奇怪现象
各位牛。。问个问题:
我用IOCP搞了个服务器端,对一个连接上来的socket,投递一个recv。然而在客户端断开连接的时候,能够通过GetQueuedCompletionStatus返回的表示此socket关闭的recv数据长度为0。。 问题是 我这里很奇怪的收到了多次,我就投递了一次而已。甚至于有的GetQueuedCompletionStatus还出错了,错误码是10054。。。
连续查了好几天资料了,依然没有找到原因。。请了解的朋友帮忙解解惑 iocp 服务器 socket 断开 连接错误
[解决办法]
http://blog.csdn.net/happyhell/article/details/5344494
[解决办法]
你收到recv为0的地方又投递了recv?
[解决办法]
应该是你关闭的时候关闭多个socket了 你试试只一个客户端连上来再断开...
[解决办法]
应该是逻辑问题,对方关闭后有服务端有closesocket吗?
[解决办法]
既然客户端模拟的是多个连接 ,那么当你退出客户端时当然是断开了n个连接,一个连接对应一个等待的recv,
客户端退出时,这n个recv就收到0的情况。