我注意到当我调用closesocket时,WSARecvFrom的完成例程(当时等待传入的数据)正在用dwError = 0和cbTransferred = garbage,即使没有该套接字的传入数据等待触发。
当我关闭套接字时,不能调用它的任何方式?我试图在closesocket之前调用shutdown,但它没有帮助。
答案 0 :(得分:1)
WSARecvFrom()本身返回什么值?我自己没有使用过WSARecvFrom(),但是MSDN说dwError是一个完成状态,所以我认为0表示实际错误,或者没有数据。
另外,你在调用closesocket()之前调用CancelIo()吗?