Boost C++ Libraries of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

This is the documentation for an old version of Boost. Click here to view this page for the latest version.

Asio Refresher

[Warning] Warning

Beast does not manage sockets, make outgoing connections, accept incoming connections, handle timeouts, close endpoints, do name lookups, deal with TLS certificates, perform authentication, or otherwise handle any aspect of connection management. This is left to the interfaces already existing on the underlying streams.

Library stream algorithms require a boost::asio::ip::tcp::socket, boost::asio::ssl::stream, or other Stream object that has already established communication with an endpoint. This example is provided as a reminder of how to work with sockets:

char const* const host = "";
boost::asio::ip::tcp::resolver r{ioc};
boost::asio::ip::tcp::socket stream{ioc};
auto const results = r.resolve(host, "http");
boost::asio::connect(stream, results.begin(), results.end());

// At this point `stream` is a connected to a remote
// host and may be used to perform stream operations.

Throughout this documentation identifiers with the following names have special meaning:

Table 1.1. Global Variables




A variable of type boost::asio::io_context which is running on one separate thread, and upon which an boost::asio::executor_work_guard object has been constructed.


A variable of type boost::asio::ip::tcp::socket which has already been connected to a remote host.


A variable of type boost::asio::ssl::stream<boost::asio::ip::tcp::socket> which is already connected and has handshaked with a remote host.


A variable of type websocket::stream<boost::asio::ip::tcp::socket> which is already connected with a remote host.