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