【问题标题】:Asio standalone async_connect not invoking callback after connectionAsio 独立 async_connect 连接后不调用回调
【发布时间】:2020-03-27 00:40:06
【问题描述】:

我遇到的问题是 asio::async_connect 没有调用它的回调处理程序(在本例中为 foo),即使已经在服务器端建立了连接。这让我很困惑,因为 async_read / write 按预期工作。

这是一个简化的例子

void foo(const asio::error_code& ec)
{
    std::cout << "Foo called" << std::endl;
}

int main()
{
    asio::io_service io;
    asio::io_service::work work(io);

    asio::ip::tcp::socket socket(io);
    asio::ip::tcp::endpoint ep(asio::ip::address::from_string("127.0.0.1"), 5454);
    socket.async_connect(ep, std::bind(&foo, std::placeholders::_1));

    io.run();
    return 0;
}

【问题讨论】:

    标签: c++ network-programming asio


    【解决方案1】:

    问题是我有两个同名的不同 io_service 对象,并且在错误的对象上调用了 io.run()。当我在一个独立的案例中测试它时,代码 sn-p 确实有效。

    【讨论】:

      猜你喜欢
      • 2018-04-14
      • 1970-01-01
      • 2013-01-13
      • 2014-04-01
      • 2017-10-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-02
      相关资源
      最近更新 更多