Boost C++ Libraries/Boost.Asio

Boost.Asio 개요 - 핵심 개념 및 기능 - Reactor 스타일 작업

까마귀75 2020. 12. 8. 17:10
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.

 

 

핵심 개념 및 기능  Boost.Asio 개요  Boost.Asio 홈

728x90
반응형