Boost.Asio既能用于同步IO对象,也能用于异步IO对象,例如套接字。下面的图对使用此库很有用。
作为一个介绍性的例子,让我们思考一下,当执行一个socket连接时会发生什么。
我们将会从分析同步操作开始。
你的程序应该有至少一个I/O执行上下文,比如一个boost::asio::io_context对象,一个boost::asio::thread_pool对象,或者boost::asio::system_context对象。这个I/O执行上下文代表你的程序连接到操作系统的I/O服务。
boost::asio::io_context io_context;
为了执行I/O操作,你的程序需要一个I/O对象,例如一个TCP socket:
boost::asio::ip::tcp::socket socket