【发布时间】:2017-03-10 07:50:25
【问题描述】:
我们知道套接字 fd 可以通过“shutdown()”函数部分关闭。我的问题是,是否有一个 API 可以重新打开 read peer 或 write peer?
【问题讨论】:
我们知道套接字 fd 可以通过“shutdown()”函数部分关闭。我的问题是,是否有一个 API 可以重新打开 read peer 或 write peer?
【问题讨论】:
不,这是不可能的。按照标准关闭会向对等方发起 FIN 请求。因此,连接两端的通信将被关闭。此外,即使您如此操作,将本地 TCP 堆栈的 FSM 切换回允许/支持相应通信的状态,对等方也不会处理此问题。
看这里:http://tcpipguide.com/free/t_TCPOperationalOverviewandtheTCPFiniteStateMachineF-2.htm
【讨论】:
shutdown() 仅关闭连接的一侧,除非您同时指定两者。
一个socket fd被称为“关闭”,我可以“重新打开”它吗?
它没有关闭。但是,它肯定会在一个方向或另一个方向或两个方向都关闭,并且没有 API 可以撤消它。
【讨论】: