从套接字读取一些数据。
template< typename MutableBufferSequence> std::size_t read_some( const MutableBufferSequence & buffers);
此函数用于从流套接字读取数据。函数调用将阻塞,直到成功读取一个或多个字节的数据,或直到发生错误。
将要读取数据的缓冲区,可以是一个或多个。
读取的字节数。
失败时抛出。错误代码 boost::asio::error::eof
表示连接已被对方关闭。
read_some 操作可能不会读取请求的全部字节数。如果您需要在阻塞操作完成前确保读取了请求的数据量,请考虑使用 read
函数。
要读取到单个数据缓冲区,请如下使用 buffer
函数。
socket.read_some(boost::asio::buffer(data, size));
有关一次性读取到多个缓冲区的信息,以及如何将其与数组、boost::array 或 std::vector 一起使用,请参阅 buffer
文档。