关闭IOCP中的套接字(关闭IOCP中的一些套接字)

时间:2014-07-03 07:05:46

标签: sockets networking iocp

IOCP中有套接字..组A,B

A,B正在接收数据。 但是当我关闭A组中的套接字时,如下所示。

...停机 字关闭...

B组中的套接字似乎已损坏并停止工作。 如果有人经历过类似的症状。 给我一些建议。

1 个答案:

答案 0 :(得分:0)

我解决了我的问题。问题是工作线程无意中终止。 我之前的代码如下

while (GetQuededCompletionStatus...)
{
    // Do io related works
}

问题是'GetQueuedCompiletionStatus'函数返回IO状态TRUE / FALSE 套接字关闭时返回FALSE。所以整个while循环退出并且线程关闭。 这固定如下

while (1)
{
   BOOL iostatus = GetQueuedCompletionStatus...
   if (iostatus==TRUE)
   {
       // Do IO works
   }
}

也许这个骨架是基本的IOCP工作者线程循环