728x90
반응형
Reactor 스타일 작업 (Reactor-Style Operations)
때때로 프로그램은 I/O 작업 자체를 수행하려는 타사 라이브러리와 통합되어야 한다. 이를 용이하게 하기 위해 Boost.Asio는 소켓을 읽기 준비, 쓰기 준비 또는 보류 중인 오류 조건을 대기하는 데 사용할 수 있는 동기식 및 비동기식 작업을 포함하고 있다.
예를 들어, 넌-블럭킹 읽기를 수행하려면 다음과 같이 사용할 수 있다:
ip::tcp::socket socket(my_io_context);
...
socket.non_blocking(true);
...
socket.async_wait(ip::tcp::socket::wait_read, read_handler);
...
void read_handler(boost::system::error_code ec)
{
if (!ec)
{
std::vector<char> buf(socket.available());
socket.read_some(buffer(buf));
}
}
이러한 작업은 모든 플랫폼의 소켓과 POSIX 스트림-지향 디스크립터(descriptor) 클래스에 대해 지원된다.
더 보기
basic_socket::wait(), basic_socket::async_wait(), basic_socket::non_blocking(), basic_socket::native_non_blocking(), nonblocking example.
728x90
반응형
'Boost C++ Libraries > Boost.Asio' 카테고리의 다른 글
Boost.Asio 개요 - 핵심 개념 및 기능 - 사용자 지정 메모리 할당 (0) | 2020.12.08 |
---|---|
Boost.Asio 개요 - 핵심 개념 및 기능 - 라인 기반 작업 (0) | 2020.12.08 |
Boost.Asio 개요 - 핵심 개념 및 기능 - 스트림, 짧은 읽기와 짧은 쓰기 (0) | 2020.12.08 |
Boost.Asio 개요 - 핵심 개념 및 기능 - 버퍼 (0) | 2020.12.07 |
Boost.Asio 개요 - 핵심 개념 및 기능 - 스트랜드: 명시적 잠금없이 스레드 사용 (0) | 2020.12.07 |