¿Cómo crear un socket Boost.Asio desde un socket nativo?

Simplemente estoy tratando de crear un impulsoip::tcp::socket desde un socket nativo existente. En elasignar función, el primer parámetro debe ser un "tipo de protocolo" y el segundo debe ser un "tipo de nativo", pero nunca explica qué son o da un ejemplo de su uso.

Supongo que el segundo debería ser el descriptor de socket, pero realmente agradecería una aclaración.

void SendData (int socket, std::string message)
{
    boost::asio::io_service ioserv;
    boost::asio::ip::tcp::socket s(ioserv);
    s.assign(/* what goes here? */, /* ..and here? */);
    s.send(boost::asio::buffer(message));
}

Respuestas a la pregunta(1)

Su respuesta a la pregunta