c++ - Boost Asio connect_async 从不调用处理程序

标签 c++ boost asynchronous boost-asio

我正在尝试开发一个需要异步方法的网络应用程序。现在我正在尝试使用 Boost Asio 来实现并搜索示例代码。但我发现的所有示例都使用带有 boost::bind 的类方法作为处理程序。我想对处理程序使用更简单的普通 c 风格函数,而不是类方法。我尝试了以下代码并编译完成,但处理程序 on_connect() 从未在运行时被调用。

#include <iostream>
#include <conio.h>
#include <boost/asio.hpp>
#include <boost/bind.hpp>

using namespace std;
using namespace boost;
using namespace boost::asio;

void on_connect(const system::error_code& error)
{
    cout << "on_connect called!" << endl;
}

int main()
{
    io_service io_service;
    ip::tcp::socket socket(io_service);
    socket.async_connect(ip::tcp::endpoint(ip::address::from_string("192.168.0.2"), 12345), &on_connect);
    _getch();
}

我应该如何修复代码以正确调用处理程序?

提前致谢。

最佳答案

调用_getch();之后调用io_service.run();

关于c++ - Boost Asio connect_async 从不调用处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22268914/

相关文章:

c# - 为什么我的异步方法不等待 "serialPort = await SerialDevice.FromIdAsync()"?

java - 为什么 ExecutorService 等待所有线程完成而 Completablefuture 不等待?

flutter - 异步等待 Navigator.push() - 出现 linter 警告 : use_build_context_synchronously

c++ - 如何找到距离等于 X 的两个 vector 上的点

c++ - 是否可以根据整数模板参数构造成员数组的元素?

c++ - Boost最常用的部分

c++ - 添加 boost 日志依赖项时出现 undefined reference 错误

c++ - boost::log-在库/插件中使用独立的严重级别

c++ - Qt 应用程序是否具有自动垃圾收集功能?

c++ - 我的代码有什么问题?我的程序无法编译