똑똑한 개발/C++

[boost] asio #1

성댕쓰 2022. 5. 1. 09:55

튜토리얼 따라 하며 boost-asio library 사용법 알아보자.

튜토리얼 링크 : Timer.1 - Using a timer synchronously - 1.79.0 (boost.org)

 

#include <iostream>
#include <boost/asio.hpp>

int main()
{
	boost::asio::io_context io;
	boost::asio::steady_timer t(io, std::chrono::seconds(5));
	t.wait();

	std::cout << "Hello, world!" << std::endl;
	return 0;
}

asio 사용하려면 적어도 하나의 io context가 있어야 한다(ex. io_context || thread_pool)

 

io 기능을 제공하는 클래스는 하나의 executor를 첫 번째 파람으로 받아 생성해야 한다.

 boost::asio::steady_timer t(io, boost::asio::chrono::seconds(5));

t.wait()는 5초 지나고 리턴된다. 타이머는 항상 expired or not expired 상태를 갖는다. expired 된 타이머의 wait을 콜하면 바로 리턴된다.

 

 

 

참조 : Tutorial - 1.79.0 (boost.org)