为什么我在收到一个数据包以后,程序会不停的从GetQueuedCompletionStatus函数中取得同样的数据,造成了死循环,下一个连接根本进不来,请各位指点迷津,谢谢!

解决方案 »

  1.   

    我没有主动去断开连接,就是不知道如果客户端自己断开连接,是怎样判断的!GetQueuedCompletionStatus函数是在什么情况下可以获得返回的。
      

  2.   

    GetQueuedCompletionStatus函数不是死循环,它是一个陡塞函数,收到信息就会触发事件,你实施把客户端发送缓冲区和服务器段的发送缓冲区大小设置了一样大小。另外,你创建了几个线程,GetQueuedCompletionStatus函数开始的时候就得执行几次,另外完成端口上的每一次收发操作都会触发事件。你多更总几次,他不会是死循环的。除非你的客户端是个循环在发送数据。OK
      

  3.   

    在处理数据时检测接受字节数,为0则用户断开,我试过,成功监测到用户退出,但是如果用户杀进程,没办法。源程序我有,要的e_mail我。[email protected]
      

  4.   

    同意 life2000(老头子) 的