我不明白为什么boost :: asio :: read_until读取分隔符后面的字符

时间:2017-07-28 14:50:25

标签: c++ boost tcp

根据boost::asio::read_until文档:

  

成功执行read_until操作后,streambuf可能包含分隔符之外的其他数据。应用程序通常会将该数据留在streambuf中,以便后续的read_until操作进行检查。

我不明白为什么会这样。

是因为在TCP协议中,如果你没有阅读所有可用的字符,你可能会丢失它们吗?

1 个答案:

答案 0 :(得分:1)

因为如果它只读到你想要的字符,它必须一次执行一个单字符读取。这将是非常低效的。