继承自 basic_socket。
取消与套接字关联的所有异步操作。
void cancel();
此函数将导致所有挂起的异步连接、发送和接收操作立即完成,并且取消的操作的处理程序将接收到 boost::asio::error::operation_aborted
错误。
失败时抛出。
在 Windows XP、Windows Server 2003 以及更早版本的 Windows 上运行时,除非定义了 BOOST_ASIO_ENABLE_CANCELIO,否则对 cancel()
的调用总是会因 boost::asio::error::operation_not_supported
错误而失败。然而,CancelIo 函数在使用前应考虑两个问题
为了实现可移植的取消,请考虑使用以下替代方法之一
close()
函数可同时取消挂起的操作并关闭套接字。在 Windows Vista、Windows Server 2008 及更高版本上运行时,将始终使用 CancelIoEx 函数。此函数没有上述问题。