尝试从流中读取指定数量的数据,然后返回。
template< typename SyncReadStream, typename MutableBufferSequence> std::size_t read( SyncReadStream & s, const MutableBufferSequence & buffers, boost::system::error_code & ec, constraint_t< is_mutable_buffer_sequence< MutableBufferSequence >::value > = 0);
此函数用于从流中读取指定数量的字节数据。调用将阻塞,直到满足以下任一条件:
此操作通过零次或多次调用流的 read_some 函数来实现。
要从中读取数据的流。类型必须支持 SyncReadStream 概念。
一个或多个缓冲区,数据将读取到这些缓冲区中。缓冲区大小的总和表示要从流中读取的最大字节数。
用于指示发生何种错误(如果有)。
传输的字节数。
要将数据读取到单个缓冲区中,请使用 buffer
函数,如下所示:
boost::asio::read(s, boost::asio::buffer(data, size), ec);
有关一次性读取到多个缓冲区以及如何与数组、boost::array 或 std::vector 一起使用,请参阅 buffer
文档。
此重载等同于调用
boost::asio::read( s, buffers, boost::asio::transfer_all(), ec);