c++ - Boost::Asio - 读还是读到?

标签 c++ boost-asio

我正在学习使用 Boost::Asio

我在想:什么时候应该使用 read_until ?我什么时候应该使用 read ?

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

最佳答案

一个并不比另一个好。

您使用协议(protocol)要求的内容。

通常

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

  • 文本协议(protocol)倾向于使用分隔符来构造信息(例如 { ... } 用于 JSON 类语法,或 \r\n 用于 SMTP/HTTP 等).

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

关于c++ - Boost::Asio - 读还是读到?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30667221/

相关文章:

输出流中出现尚未输入的 C++ 数字

c++ - 为什么我在 dev c++ 中编译代码时会出现此错误?

c++ - clockTick 函数未在此范围内声明

c++ - “myV”没有命名类型

c++ template specialization-specific 声明

c++ - GLuint64 的平台独立 printf 格式?

c++ - 传输层安全 boost 套接字

c++ - 如何欺骗 boost::asio 以允许仅 move 处理程序

c++ - 找不到库 boost.asio

c++ - C++ boost::asio::ip::tcp::acceptor有时不接受连接器?