Постройте<basic_socket>, не открывая его.
explicit basic_socket(
    boost::asio::io_service & io_service);
  » more...
Постройте и откройте<basic_socket>.
basic_socket(
    boost::asio::io_service & io_service,
    const protocol_type & protocol);
  » more...
Постройте<basic_socket>, открывая его и привязывая к данной локальной конечной точке.
basic_socket(
    boost::asio::io_service & io_service,
    const endpoint_type & endpoint);
  » more...
Постройте<basic_socket>на существующем родном гнезде.
basic_socket(
    boost::asio::io_service & io_service,
    const protocol_type & protocol,
    const native_handle_type & native_socket);
  » more...
<basic_socket>от другого.
basic_socket(
    basic_socket && other);
  » more...
Переместить конструкцию<basic_socket>из гнезда другого типа протокола.
template<
    typename Protocol1,
    typename SocketService1>
basic_socket(
    basic_socket< Protocol1, SocketService1 > && other,
    typename enable_if< is_convertible< Protocol1, Protocol >::value >::type *  = 0);
  » more...