标签: c++ boost tcp
根据boost::asio::read_until文档:
boost::asio::read_until
成功执行read_until操作后,streambuf可能包含分隔符之外的其他数据。应用程序通常会将该数据留在streambuf中,以便后续的read_until操作进行检查。
我不明白为什么会这样。
是因为在TCP协议中,如果你没有阅读所有可用的字符,你可能会丢失它们吗?
答案 0 :(得分:1)
因为如果它只读到你想要的字符,它必须一次执行一个单字符读取。这将是非常低效的。