【发布时间】:2009-04-27 14:55:16
【问题描述】:
我注意到,当我调用 closesocket 时,WSARecvFrom 的完成例程(到那时等待传入数据)被 dwError=0 和 cbTransferred=garbage 触发,尽管该套接字没有待处理的传入数据。
有什么方法可以在我关闭套接字时不调用它?我试图在closesocket之前调用shutdown,但它没有帮助。
【问题讨论】:
标签: winsock
我注意到,当我调用 closesocket 时,WSARecvFrom 的完成例程(到那时等待传入数据)被 dwError=0 和 cbTransferred=garbage 触发,尽管该套接字没有待处理的传入数据。
有什么方法可以在我关闭套接字时不调用它?我试图在closesocket之前调用shutdown,但它没有帮助。
【问题讨论】:
标签: winsock
WSARecvFrom() 本身返回什么值?我自己没有使用过 WSARecvFrom(),但 MSDN 说 dwError 是完成状态,所以我想 0 表示实际错误,或者没有数据。
另外,你是在调用 closesocket() 之前调用 CancelIo() 吗?
【讨论】: