为什么插座不在插座的另一侧关闭?(close_wait)?
Why doesn't the socket close on the other side of the socket? (close_wait)?
我的套接字有问题。我正在我的电脑和手机之间创建一个插座来发送信息。当我关闭服务器或客户端时,它会发送一个FIN数据包,并在FIN_WAIT2状态下停留大约一分钟。然而,另一方陷入CLOSE_WAIT状态,显然无法关闭套接字。我认为套接字应该立即关闭,所以也许我应该在客户端中实现一个代码,当服务器想要关闭套接字时关闭套接字,反之亦然。我该怎么做?
您需要关闭套接字通道的两端。
如果服务器关闭了与客户端的连接,则客户端需要关闭客户端上的连接,以便传输最后一个FIN
数据包(从客户端到服务器)。这将触发TCP状态机中的最后一个状态转换。
CLOSE_WAIT表示对等端已发送FIN,TCP正在等待本地应用程序关闭套接字。参见RFC 793。这不是自动发生的。
相关文章:
- ofstream::close() 是否在 Linux 上调用同步?
- 如果我在字符数组上使用 close() 会发生什么?
- 蓝牙插座只能读取一次,为什么?
- Asio端接插座功能:取消、关闭、关闭、释放
- 提升 ASIO 打开多个插座
- 网络插座 |无法设置on_close/打开处理程序
- ZMQ:连接 ZMQ 插座时"Resource temporarily unavailable"
- 如何通过插座传输 ESP32-Cam 拍摄的图像?
- UDP客户端/服务器程序在不同的IP和端口上通信超过2个插座
- 如何通过pthread发送插座ID
- TOS字段从Linux的TCP插座上接收到的数据包获取
- 不同网络之间的插座编程
- 如何通过1024字节缓冲区和强力冲洗在插座连接上发送6个字符的C弦
- Python/C 远程TCP插座
- 我可以使用Windows上使用ASIO(非凸轮)打开2048个插座
- C DO插座关闭自己的运行时间
- 插座无法接收数据?客户使用boost.asyio库编写.服务器用Python编写
- QT如何显示,请等待对话框,而插座正在等待响应
- 如何在转移中间处理一半的插座
- 发送和接收所有数据(C 插座)