IOCP投递ConnectEx的问题
我的应用作为客户端,借助IOCP实现。
问题1:测试时发现,如果服务器端先启动,则客户端投递ConnectEx后,工作者线程会收到连接建立的消息,一切正常;而如果客户端先启动,并且投递ConnectEx的时候服务器端还没有启动,则该投递会导致工作者线程的GetQueuedCompletionStatus()调用立即返回,并产生一个1225的错误代码。这和我预想的行为不一样啊,我以为客户端投递一次ConnectEx()就万事大吉了,坐等连接成功即可。这样的话岂不是要单开一个线程,投递失败的话反复投递才行?有没有办法能让ConnectEx一直干活直到连上。
问题2:(这个和题目关系不大)如何检测连接的异常中断,比如网线拔掉,或者服务器端异常退出(没有第四次握手就拜拜)。
谢谢