c++ - 带有 boost asio 的 TIME_WAIT

标签 c++ tcp boost-asio

我尝试了官方的 tcp echo 服务器示例 serverclient .使用 netstat -ano | findstr TIME_WAIT 我可以看到客户端每次都导致 TIME_WAIT,而服务器完全断开连接。

有没有办法阻止 TIME_WAIT 或 CLOSE_WAIT,这对双方来说都是完全断开连接的?

这是捕获的数据包,似乎最后一个 ACK 已正确发送,但客户端仍然存在 TIME_WAITenter image description here

最佳答案

  • CLOSE_WAIT 是一个编程错误。本地应用程序已收到传入关闭但尚未关闭此端。

  • TIME_WAIT 在双方完全断开连接后出现,并且只持续几分钟。避免它的方法是成为接收第一个关闭的端。通常您希望在服务器上避免它,因此您首先关闭客户端。

关于c++ - 带有 boost asio 的 TIME_WAIT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35006324/

相关文章:

c++ - boost asio http 客户端 - io_service.run()

c++ - OpenGL 的列主要顺序

c++ - 将数组元素递增 1

c++如何在没有默认构造函数的情况下定义另一种类型的对象成员

parsing - 带有 HTTP 数据的 TCP 段

sockets - Windows Phone P2P TCP/IP 连接

c++ - boost::asio::io_service::在多个线程中运行

c++ - 编译 MatIO 时出现链接错误

c++ - writev() 真的是原子的吗?

python - 如何通过 scapy 发送 FIN 数据包关闭连接?