请教高手 1 客户端的Recv(),Send(),会不会导致 服务器端的GetQueuedCompletionStatus() 返回?2 必须是服务器端的 Recv(),Send(),PostQueuedCompletionStatus()才会导致 务器端的GetQueuedCompletionStatus() 返回吗?

解决方案 »

  1.   

    客户端用Send()发送数据,如果服务端这个时候投递了WSARecv(),那么就可以完成I/O请求,产生完成通知包(接到客户端发来的数据),然后可以让GetQueuedCompletionStatus()返回.另外服务端投递了WSASend(),那么当完成I/O请求后,产生完成通知包(服务端发送数据完毕),也可以让GetQueuedCompletionStatus()返回.
      

  2.   

    套接字关联之后,就不断循环了,不断的GetQueuedCompletionStatus所以不一定
      

  3.   

    服务器端需要通过WSARecv,WSASend或其它投递一个完成I/O请求,只要这个时候有可读数据或写完成,通过GetQueuedCompletionStatus就可以得到信息了。