IOCP中有套接字..组A,B
A,B正在接收数据 . 但是,当我关闭A组中的套接字时,如下所示 .
关闭... closesocket ...
B组中的套接字似乎已损坏并停止工作 . 如果有人经历过类似的症状 . 给我一些建议 .
我解决了我的问题 . 问题是工作线程无意中终止 . 我以前的代码如下
while (GetQuededCompletionStatus...) { // Do io related works }
问题是'GetQueuedCompiletionStatus'函数返回IO状态TRUE / FALSE当socket关闭它返回FALSE . 所以整个while循环退出并且线程关闭 . 这固定如下
while (1) { BOOL iostatus = GetQueuedCompletionStatus... if (iostatus==TRUE) { // Do IO works } }
也许这个骨架是基本的IOCP工作线程循环
1 回答
我解决了我的问题 . 问题是工作线程无意中终止 . 我以前的代码如下
问题是'GetQueuedCompiletionStatus'函数返回IO状态TRUE / FALSE当socket关闭它返回FALSE . 所以整个while循环退出并且线程关闭 . 这固定如下
也许这个骨架是基本的IOCP工作线程循环