EOF in async_read() in boost::asio

EOF in async_read() in boost::asio

本文关键字:in boost asio read async EOF      更新时间:2023-10-16

当async_read_some()返回EOF异常时,这意味着服务器停止发送数据还是意味着连接已关闭。我有这种困惑,因为我找不到一种方法来知道客户端是否收到了来自服务器的所有数据。

表示连接已关闭。虽然在其他地方有文档,但仍然适用:

错误码为boost::asio::error::eof,表示连接被对端关闭。

如果客户端需要知道从服务器接收到的所有数据,那么考虑在通信协议中支持帧。提振。Asio提供了更高级的操作来帮助简化此操作。例如,async_read_until()可用于使用一组特定字符来指示消息结束的协议,而async_read()可用于固定长度协议或具有固定长度头的可变长度协议。