问题描述:
提交了一个重叠IO:
BOOL b = m_pFnAcceptEx(
s,
lpBuf->sClient,
lpBuf->buf,
0,
sizeof(sockaddr_in) + 16,
sizeof(sockaddr_in) + 16,
&dwBytes,
&lpBuf->ol
); if (!b && GetLastError() != WSA_IO_PENDING){
return FALSE;
}
int index = WaitForSingleObject(lpbuf->ol.hEvent,1000);
if (index == WSA_WAIT_FAILED){
printf("Error:%d\n",GetLastError());
}
调试发现index等于 WSA_WAIT_FAILED并返回错误为6:无效句柄,也就是lpbuf->ol.hEvent无效,很郁闷,此前m_pFnAcceptEx一直用完成端口等待,程序执行正确,而现在由于逻辑需要想提交一个acceptex后立即等待重叠IO,却发现上面的错误,调试多次无果,忘知者点拨,谢。