Hi 吉利儿,
感谢在MSDN论坛发帖。
>>开启心跳检测,发现客户端异常掉线以后返回错误码是 WSAGetLasterror 997
WSAGetLasterror 997指的是WSA_IO_PENDING。就是说你的程序在启动一个重叠的操作,所以不能立即完成。当过段时间操作完成后,会给出一个完成指示。请检查一下程序之中是否有重复的操作发出。当你调用BindIoCompletionCallback 时, 它通过线程池的I/O完成端口与制定文件关联。没有接收到完成消息的工作线程不会退出,I/O端口会将她们挂起,在线程池中进行睡眠等待,直到接收到完成消息。详细内容,参考以下文档。
https://msdn.microsoft.com/en-us/library/windows/desktop/aa363484(v=vs.85).aspx
https://msdn.microsoft.com/en-us/library/windows/desktop/ms681951(v=vs.85).aspx
Best Regards,
Sera Yu