【发布时间】:2011-06-22 02:41:10
【问题描述】:
如果我使用close而不是cancel,会有一些问题。
close 函数可以关闭套接字,任何未完成的异步操作都会通过返回 boost::asio::error::operation_aborted 错误来停止。
为什么我应该使用cancel 而不是close?
我担心如果某些异步操作正在执行,cancel 无法取消它,是吗?
像asio::ip::tcp::resolve::cancel,我多次尝试在调用async_resolve 后取消resolve_handler,但resolve_handler 总是返回没有boost::asio::error::operation_aborted 错误。
我认为resolve_handler 正在被执行?
是吗?
【问题讨论】:
标签: c++ sockets boost boost-asio