【发布时间】:2017-12-14 01:49:53
【问题描述】:
这篇文章的目的是弄清楚如何在基于 Boost ASIO 的 HTTP 服务器上实现 Keep-Alive 超时。
这有两个部分 -
- 当客户端关闭连接时
- 当客户端连接处于非活动状态时
我相信,1) 可以通过在本机套接字句柄上设置 TCP_KEEPIDLE、TCP_KEEPCNT 和 TCP_KEEPINTVL 选项来检测。
检测上述 2) 的最佳方法是什么?
我尝试在本机套接字上设置 SO_RCVTIMEO 和 SO_SNDTIMEO,但服务器似乎没有在配置的超时间隔结束时关闭连接。
任何指针都非常感谢。
谢谢!
【问题讨论】:
-
如果客户端很好地关闭了它的连接,那么你的连接结束将被标记为可读(如果你使用轮询)然后
read或recv将返回0。跨度>
标签: c++ boost tcp boost-asio