我正在尝试开发一个需要异步方法的网络应用程序。现在我正在尝试使用 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/