相关疑难解决方法(0)

将 boost asio 绑定到本地 tcp 端点

我正在尝试将 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() 调用之前调用它,还有一个“无效句柄”异常。

networking boost bind interface boost-asio

3
推荐指数
1
解决办法
5044
查看次数

标签 统计

bind ×1

boost ×1

boost-asio ×1

interface ×1

networking ×1