Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения

Reactor-Style Operations

Boost , Boost.Asio , Core Concepts and Functionality

Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

PrevUpHomeNext

Иногда программа должна быть интегрирована со сторонней библиотекой, которая хочет самостоятельно выполнять операции ввода-вывода. Чтобы облегчить это, Буст. Asio включает в себя тип<null_buffers>, который может использоваться как для чтения, так и для записи. Операция<null_buffers>не возвращается, пока объект ввода/вывода не будет «готов» выполнить операцию.

Например, для выполнения неблокирующего чтения можно использовать что-то вроде следующего:

ip::tcp::socket socket(my_io_service);
...
socket.non_blocking(true);
...
socket.async_read_some(null_buffers(), read_handler);
...
void read_handler(boost::system::error_code ec)
{
  if (!ec)
  {
    std::vector<char> buf(socket.available());
    socket.read_some(buffer(buf));
  }
}

Эти операции поддерживаются как для сокетов на всех платформах, так и для потоково-ориентированных классов дескрипторов POSIX.

See Also

null_buffers,basic_socket::non_blocking(),basic_socket::native_non_blocking(),Неблокирующий пример.


PrevUpHomeNext

Статья Reactor-Style Operations раздела Boost.Asio Core Concepts and Functionality может быть полезна для разработчиков на c++ и boost.




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: Core Concepts and Functionality ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-30 11:47:00
2025-05-19 18:16:41/0.0060968399047852/0