使用 boost::asio 将resolve_handler绑定到解析器async_resolve
我有这个代码。如何将我的方法resolve_handler与预期的迭代器和错误参数绑定?这是打破连接逻辑的正确方法吗?
void FileClient::start()
{
try {
boost::asio::ip::tcp::resolver::query query("ip", "port");
resolver_.async_resolve(query, boost::bind(
&FileClient::resolve_handler, this
));
}
catch (std::exception& e)
{
std::cerr << "Exception: " << e.what() << "\n";
}
}
void FileClient::resolve_handler(const boost::system::error_code &_error,
boost::asio::ip::tcp::resolver::iterator _it)
{
if (!_error)
socket_.async_connect(*_it, boost::bind(
&FileClient::connect_handler, this, boost::asio::placeholders::error
));
else
std::cerr << "resolve_handler error: " << _error << std::endl;
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
boost.asio教程中有示例,例如来自此 HTTP 异步客户端
...
(它们的
handle_connect
继续根据需要递增endpoint_iterator
)There are examples in boost.asio tutorials, for example, from this HTTP async client
...
(their
handle_connect
continues to incrementendpoint_iterator
as necessary)