Timer.1 - 타이머를 동기식으로 사용 (Using a timer synchronously)
이 튜토리얼 프로그램은 asio를 소개하기 위해서 타이머에서 블록 대기를 수행하는 방법을 보여준다.
필요한 헤더 파일을 포함하는 것으로 시작한다.
모든 asio 클래스는 단순히 "asio.hpp" 헤더 파일을 포함하여 사용할 수 있다.
#include <iostream>
#include <boost/asio.hpp>
asio를 사용하는 모든 프로그램에는 io_context 또는 thread_pool 개체와 같은 I/O 실행 컨텍스트가 하나 이상 있어야 한다. I/O 실행 컨텍스트는 I/O 기능에 대한 접근을 제공한다. main 함수에서 io_context 유형의 개체를 먼저 선언한다.
int main()
{
boost::asio::io_context io;
다음으로 boost::asio::steady_timer 유형의 개체를 선언한다. I/O 기능(또는 이 경우 타이머 기능)을 제공하는 핵심 asio 클래스의 생성자는 io_context를 첫 번째 인수로 사용한다. 생성자에 대한 두 번째 인수는 타이머가 지금부터 5초 후에 만료되도록 설정한다.
boost::asio::steady_timer t(io, boost::asio::chrono::seconds(5));
이 간단한 예제에서 타이머에 대한 블록 대기를 수행한다. 즉, steady_timer::wait()에 대한 호출은 타이머가 생성된(즉, 대기가 시작된 시점이 아닌) 후 5초가 지나 만료될 때까지 반환되지 않는다.
타이머는 항상 "expired(만료됨)" 또는 "not expired(만료되지 않음)"의 두 가지 상태중 하나이다. steady_timer::wait() 함수가 만료된 타이머에서 호출되면, 즉시 반환될 것이다.
t.wait();
마지막으로 타이머가 만료되었을 때 보여주는 필수 "Hello, World!" 메세지를 출력한다.
std::cout << "Hello, world!" << std::endl;
return 0;
}
돌아가기: 튜토리얼 페이지
'Boost C++ Libraries > Boost.Asio' 카테고리의 다른 글
Boost.Asio 튜토리얼 - Timer.1 소스 (0) | 2020.12.15 |
---|---|
Boost.Asio 튜토리얼 - Timer.2 - 타이머를 비동기식으로 사용 (0) | 2020.12.15 |
Boost.Asio 튜토리얼 (0) | 2020.12.14 |
Boost.Asio 사용 (0) | 2020.12.13 |
Boost.Asio 개요 - 플랫폼별 구현 정보 (0) | 2020.12.13 |