Эта функция используется для асинхронной записи определенного количества байтов данных в поток. Звонок функции всегда возвращается немедленно. Асинхронная операция будет продолжаться до тех пор, пока не будет выполнено одно из следующих условий:
Эта операция реализована в терминах нулевого или большего количества вызовов к функции async_write_some потока и известна как операция.. Программа должна гарантировать, что поток не выполняет никаких других операций записи (таких как async_write, функция async_write_some потока или любые другие составные операции, которые выполняют записи) до завершения этой операции.
Поток, к которому должны быть записаны данные. Этот тип должен поддерживать концепцию AsyncWriteStream.
b
<basic_streambuf>объект, из которого будут записаны данные. Владение Streambuf сохраняется за абонентом, который должен гарантировать, что он остается действительным до тех пор, пока не будет вызван обработчик.
handler
Обработчик должен быть вызван, когда операция записи завершится. Копии будут сделаны из обработчика по мере необходимости. Функциональная подпись обработчика должна быть:
voidhandler(constboost::system::error_code&error,// Result of operation.std::size_tbytes_transferred// Number of bytes written from the// buffers. If an error occurred,// this will be less than the sum// of the buffer sizes.);
Независимо от того, выполняется ли асинхронная операция немедленно или нет, обработчик не будет вызываться из этой функции. Привлечение обработчика будет выполнено способом, эквивалентным использованию<boost::asio::io_service::post()>.
Статья async_write (3 of 4 overloads) раздела Boost.Asio async_write может быть полезна для разработчиков на c++ и boost.
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.