如何退出阻止recv()调用?

1 c++ sockets winapi network-programming winsock

基于这个问题,当你调用已经使用closesocket()的套接字时,数据包将被发送到另一端而不是执行正常的断开连接(4次握手).recv()RST

但我希望执行一个优雅的断开连接,所以我需要recv()在呼叫之前退出closesocket().

有没有办法做到这一点?

use*_*421 6

你可以shutdown()在socket上输入.该recv()会解锁并返回零,大家会很高兴.