Sha256: 80be2449705f1a7dc285b30a55935430921baaf7a440e7f79a0126a2879ea29a
Contents?: true
Size: 1.48 KB
Versions: 24
Compression:
Stored size: 1.48 KB
Contents
[/ / Copyright (c) 2003-2020 Christopher M. Kohlhoff (chris at kohlhoff dot com) / / Distributed under the Boost Software License, Version 1.0. (See accompanying / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) /] [section:reactor Reactor-Style Operations] Sometimes a program must be integrated with a third-party library that wants to perform the I/O operations itself. To facilitate this, Asio includes synchronous and asynchronous operations that may be used to wait for a socket to become ready to read, ready to write, or to have a pending error condition. As an example, to perform a non-blocking read something like the following may be used: ip::tcp::socket socket(my_io_context); ... socket.non_blocking(true); ... socket.async_wait(ip::tcp::socket::wait_read, read_handler); ... void read_handler(asio::error_code ec) { if (!ec) { std::vector<char> buf(socket.available()); socket.read_some(buffer(buf)); } } These operations are supported for sockets on all platforms, and for the POSIX stream-oriented descriptor classes. [heading See Also] [link asio.reference.basic_socket.wait basic_socket::wait()], [link asio.reference.basic_socket.async_wait basic_socket::async_wait()], [link asio.reference.basic_socket.non_blocking basic_socket::non_blocking()], [link asio.reference.basic_socket.native_non_blocking basic_socket::native_non_blocking()], [link asio.examples.cpp03_examples.nonblocking nonblocking example]. [endsect]
Version data entries
24 entries across 24 versions & 1 rubygems