Попытка прочитать определенное количество данных из потока перед возвращением.
template<
typename SyncReadStream,
typename MutableBufferSequence>
std::size_t read(
SyncReadStream & s,
const MutableBufferSequence & buffers,
boost::system::error_code & ec);
Эта функция используется для чтения определенного количества байтов данных из потока. Призыв будет блокироваться до тех пор, пока одно из следующих условий не будет правдой:
- Поставляемые буферы полны. То есть передаваемые байты равны сумме размеров буфера.
- Произошла ошибка.
Эта операция выполняется с точки зрения нулевых или более звонков на функцию read_some потока.
- s
Поток, из которого следует читать данные. Тип должен поддерживать концепцию SyncReadStream.
- buffers
Один или несколько буферов, в которые будут читаться данные. Сумма размеров буфера указывает максимальное количество байтов для чтения из потока.
- ec
Установить, чтобы указать, какие ошибки произошли, если таковые имеются.
Количество переведенных байтов.
Для чтения в одном буфере данных используйте функцию buffer
следующим образом:
boost::asio::read(s, boost::asio::buffer(data, size), ec);
См. buffer
документацию для информации о чтении в нескольких буферах за один ход, и как использовать ее с массивами, увеличить::array или std::vector.
Эта перегрузка эквивалентна вызову:
boost::asio::read(
s, buffers,
boost::asio::transfer_all(), ec);