首页 文章

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

提问于
浏览
0

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

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

关闭... closesocket ...

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

1 回答

  • 0

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

    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工作线程循环

相关问题