c – 使用boost :: asio :: ip :: tcp :: socket :: cancel()和s
发布时间:2020-12-16 10:19:26 所属栏目:百科 来源:网络整理
导读:如果我使用close而不取消,则存在一些问题. close函数可以关闭套接字,并通过返回boost :: asio :: error :: operation_aborted错误来停止任何未完成的异步操作. 我为什么要使用取消而不是关闭? 我担心如果某些异步操作正在执行,取消无法取消它,是吗? 像asio
如果我使用close而不取消,则存在一些问题.
close函数可以关闭套接字,并通过返回boost :: asio :: error :: operation_aborted错误来停止任何未完成的异步操作. 我为什么要使用取消而不是关闭? 我担心如果某些异步操作正在执行,取消无法取消它,是吗? 像asio :: ip :: tcp :: resolve :: cancel,我在调用async_resolve后尝试多次取消resolve_handler,但是resolve_handler总是返回而没有boost :: asio :: error :: operation_aborted错误. 我认为resolve_handler正在执行? 是? 解决方法
如果要在不关闭套接字的情况下停止挂起操作,则取消非常有用.
请注意,Boost documentation建议使用close以获得更高的可移植性(来自doc页面):
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |