【发布时间】:2015-02-13 22:26:19
【问题描述】:
我正在学习boost::asio,现在对读取完整缓冲区的正确方法感到困惑。例如,当建立连接时,我想用下一种方式读取uint32_t:
std::uint32_t size;
size_t len = m_socket.read_some(buffer(&size, sizeof(std::uint32_t)));
如您所见,我设置了缓冲区大小。在其他情况下,我收到了 len 长度为 read_some 数据。
所以主要问题:如果我在调用buffer 时设置所需的缓冲区长度,boost::asio 是否保证将读取uint32_t 的所有 4 个字节?
或者如果不能保证 - 我如何读取完整的缓冲区? (全部 4 个字节)
【问题讨论】:
标签: c++ boost boost-asio