一尘不染

从另一个线程关闭套接字时,阻塞recv不会退出吗?

linux

在Linux中,如果我们recv从一个线程调用阻塞并从另一个线程关闭同一个套接字,recv则不会退出。

为什么?


阅读 409

收藏
2020-06-07

共1个答案

一尘不染

检查是否已关闭套接字的所有文件描述符。如果在“远程”端有任何打开的端口(假设这是您尝试关闭的端口),则“
对等方尚未执行有序的关闭 ”。

如果仍然不起作用,请shutdown(sock, SHUT_RDWR)在远端调用,无论引用计数如何,都将关闭套接字。

2020-06-07