Я пытаюсь использовать boost asio socket, связанный с комбинацией локального адреса / порта. Это прекрасно работает. Что не работает, так это повторное использование сокета после того, как сокет и приложение были остановлены и перезапущены.
//
// open the socket - it would also be opened by the async_connect()
// method but we might need an open socket to bind it
_socket.open(boost::asio::ip::tcp::v4());
if ( _bindLocal ) {
boost::asio::socket_base::reuse_address option(true);
_socket.set_option(option);
_socket.bind( _localEndpoint );
}
// Invoke async. connect. Immediate return, no throw.
_socket.async_connect(_remoteEndpoint,
boost::bind(&MyTransceiver::handleConnect, this,
boost::asio::placeholders::error));
Чего мне не хватает? Правильный ли порядок вызовов open (), set_option () и bind ()?