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.
basic_socket_acceptor::accept (15 of 16 overloads)

Accept a new connection.

    typename Executor1>
Protocol::socket::template rebind_executor< Executor1 >::other accept(
    const executor_type & ex,
    endpoint_type & peer_endpoint,
    boost::system::error_code & ec,
    typename constraint< is_executor< Executor1 >::value||execution::is_executor< Executor1 >::value >::type  = 0);

This function is used to accept a new connection from a peer. The function call will block until a new connection has been accepted successfully or an error occurs.

This overload requires that the Protocol template parameter satisfy the AcceptableProtocol type requirements.



The I/O executor object to be used for the newly accepted socket.


An endpoint object into which the endpoint of the remote peer will be written.


Set to indicate what error occurred, if any.

Return Value

On success, a socket object representing the newly accepted connection. On error, a socket object where is_open() is false.

boost::asio::ip::tcp::acceptor acceptor(my_context);
boost::asio::ip::tcp::endpoint endpoint;
boost::asio::ip::tcp::socket socket(
    acceptor.accept(my_context2, endpoint, ec));
if (ec)
  // An error occurred.