为什么不';插座的另一侧合不上?(关闭等待)

本文关键字:等待 插座 为什么不 | 更新日期: 2023-09-27 17:58:35

我的套接字有问题。我正在我的电脑和手机之间创建一个插座来发送信息。当我关闭服务器或客户端时,它会发送一个FIN数据包,并在FIN_WAIT2状态下停留大约一分钟。然而,另一方陷入CLOSE_WAIT状态,显然无法关闭套接字。我认为套接字应该立即关闭,所以也许我应该在客户端中实现一个代码,当服务器想要关闭套接字时关闭套接字,反之亦然。我该怎么做?

为什么不';插座的另一侧合不上?(关闭等待)

您需要关闭套接字通道的两端。

如果服务器关闭了与客户端的连接,则客户端需要关闭客户端上的连接,以便传输最后一个FIN数据包(从客户端到服务器)。这将触发TCP状态机中的最后一个状态转换。

CLOSE_WAIT表示对等端已发送FIN,TCP正在等待本地应用程序关闭套接字。参见RFC 793。这不是自动发生的。