如何退出阻塞的 recv() 调用?
基于此问题,当您调用 closesocket() 在 recv() 已经使用的套接字上,然后 RST 数据包将被发送到另一端,而不是执行正常的断开连接 (4-方式握手).
Based on this question, when you call closesocket() on a socket that recv() is already using, then an RST packet will be sent to the other side instead of performing a graceful disconnection (4-way handshake).
但我希望执行一个优雅的断开连接,所以我需要在调用 closesocket() 之前退出 recv().
But I wish to perform a graceful disconnection, so I need to exit recv() before calling closesocket().
有没有办法做到这一点?
Is there a way to do that?
推荐答案
您可以shutdown() 用于输入的套接字.recv() 将解除阻塞并返回零,每个人都会很高兴.
You can shutdown() the socket for input. The recv() will unblock and return zero and everybody will be happy.
相关文章