Boost::Asio - 阅读或 read_until?

Boost::Asio - read or read_until?

我正在学习使用Boost::Asio

我想知道:什么时候应该使用 read_until?我应该什么时候使用阅读?

是在数据缓冲区开头的 header 中指定数据长度更好,还是在 read_until 中使用定界符更好?

一个并不比另一个好。

您使用协议要求的内容。

通常

  • 二进制协议预先指定数据包长度(先发送)

  • 文本协议倾向于使用定界符来构建信息(例如 { ... } 用于 JSON 等语法,或 \r\n 用于 SMTP/HTTP 等)。

对于后者,您自然会使用 read_until