我正在学习使用Boost :: Asio
我在想:什么时候应该使用read_until?我什么时候应该阅读?
最好在数据缓冲区开头的标题中指定数据的长度,还是使用带有read_until的分隔符?
答案 0 :(得分:4)
一个并不比另一个好。
您使用协议所需的内容。
通常
二进制协议预先指定数据包长度(通过先发送)
文本协议倾向于使用分隔符来构造信息(例如{ ... }
用于JSON(如语法)或\r\n
用于SMTP / HTTP等)。
当然,你会使用read_until
作为后者