如何退出阻塞recv()调用? [英] How to exit a blocking recv() call?
本文介绍了如何退出阻塞recv()调用?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
根据此问题,当您拨打 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()
.
有办法吗?
推荐答案
您可以 shutdown()
recv()
将解除封锁并返回零,每个人都会很高兴。
You can shutdown()
the socket for input. The recv()
will unblock and return zero and everybody will be happy.
这篇关于如何退出阻塞recv()调用?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文