【问题标题】:closesocket triggers WSARecvFrom completion routineclosesocket 触发 WSARecvFrom 完成例程
【发布时间】:2009-04-27 14:55:16
【问题描述】:

我注意到,当我调用 closesocket 时,WSARecvFrom 的完成例程(到那时等待传入数据)被 dwError=0 和 cbTransferred=garbage 触发,尽管该套接字没有待处理的传入数据。

有什么方法可以在我关闭套接字时不调用它?我试图在closesocket之前调用shutdown,但它没有帮助。

【问题讨论】:

    标签: winsock


    【解决方案1】:

    WSARecvFrom() 本身返回什么值?我自己没有使用过 WSARecvFrom(),但 MSDN 说 dwError 是完成状态,所以我想 0 表示实际错误,或者没有数据。

    另外,你是在调用 closesocket() 之前调用 CancelIo() 吗?

    【讨论】:

    • 调用 CancelIO 很糟糕。
    猜你喜欢
    • 2019-01-03
    • 1970-01-01
    • 2018-01-30
    • 1970-01-01
    • 2023-04-08
    • 2011-01-17
    • 1970-01-01
    • 2014-10-03
    • 1970-01-01
    相关资源
    最近更新 更多