2009-04-27 18 views
1

我注意到,當我調用closesocket時,WSARecvFrom(當時等待傳入數據)的完成例程正在用dwError = 0和cbTransferred = garbage觸發,儘管沒有傳入數據等待該套接字。closesocket觸發器WSARecv從完成例程

任何方式,當我關閉套接字時不會被調用?我試圖在closesocket之前調用shutdown,但它沒有幫助。

回答

1

WSARecvFrom()本身返回什麼值?我自己並沒有使用WSARecvFrom(),但是MSDN表示dwError是一個完成狀態,所以我會想象0表示一個實際的錯誤,或者沒有數據。

另外,你是否調用closesocket()之前調用CancelIo()?

+0

調用CancelIO非常糟糕。 – unixman83 2010-12-18 01:52:30