IOCP中有套接字..组A,B
A,B正在接收数据。 但是当我关闭A组中的套接字时,如下所示。
...停机 字关闭...
B组中的套接字似乎已损坏并停止工作。 如果有人经历过类似的症状。 给我一些建议。
答案 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工作者线程循环