使用read_until:
tcp::socket socket(...);
boost::asio::streambuf data;
boost::system::error_code read_until_error;
size_t bytes_found = boost::asio::read_until(
socket, data, "\n", read_until_error);
根据文档it不会抛出,并且boost::system::errc中有很多不同的错误代码,但是哪个被同行正常关闭了套接字?有一个conn重置,但我认为不一样。