PMi*_*ler 3 networking boost bind interface boost-asio
我正在尝试将 boost asio tcp 套接字专门绑定到本地网络接口。什么时候是bind()
在套接字上调用方法的正确时间?
_endpoint 指向远程 IP/端口,例如 192.168.0.15:8888。
// Invoke async. connect. Immediate return, no throw.
_socket.async_connect(_endpoint,
boost::bind(&MyTransceiver::handleConnect, this,
boost::asio::placeholders::error));
Run Code Online (Sandbox Code Playgroud)
在 中MyTransceiver::handleConenct()
,我尝试了以下代码:
boost::asio::ip::tcp::endpoint local_end_point(
boost::asio::ip::address::from_string("192.168.0.55"), 6543 );
_socket.bind(local_end_point);
Run Code Online (Sandbox Code Playgroud)
在这里调用它失败,在async_connect(
) 调用之前调用它,还有一个“无效句柄”异常。
小智 6
好像信息不够。但一般来说,你应该:
_socket->打开()
_socket->set_option()
_socket->绑定()
_socket->async_connect()
在 handleConnect(): _socket->async_read_some()