一个socket fd已经被调用了"shutdown",我可以"reopen"吗?

a socket fd has been called "shutdown", can I "reopen" it?

我们知道套接字 fd 可以通过 "shutdown()" 函数部分关闭。我的问题是,是否有 API 重新打开读对等点或写对等点?

不,这是不可能的。按照标准关闭会向对等方发起 FIN 请求。因此,连接两端的通信将被关闭。此外,即使您如此操作,本地 TCP 堆栈的 FSM 切换回各自通信的状态 allowed/supported,对等方也不会处理此问题。

看这里:http://tcpipguide.com/free/t_TCPOperationalOverviewandtheTCPFiniteStateMachineF-2.htm

a socket fd has been called “shutdown”, can I “reopen” it?

它没有关闭。但是,它肯定会在一个方向或另一个方向或两个方向关闭,并且没有 API 可以撤消它。