我正在使用 boost::asio 在 C++ 中实现一个基本的 HTTP 服务器。
在处理每个请求时,我会以异步方式将数据分块写入。如果在任何时候我知道客户端不再连接,我想中止处理,例如,如果客户端不再存在,则继续构建结果以发送出去是没有意义的。
我认为这已经在这里被问过几次了,例如:
如何检查客户端是否通过 C++ 中的 Winsock 断开连接?
但是我读了它们,我仍然不确定这里有什么好的方法。
- 我可以尝试从客户端套接字读取吗?(即使知道另一端的 HTTP 客户端不会发送任何数据)
- 因为我正在异步编写(使用 boost::asio::async_write),所以如果客户端不再存在,我似乎不会收到反馈