1<html> 2<head> 3<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 4<title>basic_stream_socket::cancel (2 of 2 overloads)</title> 5<link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css"> 6<meta name="generator" content="DocBook XSL Stylesheets V1.79.1"> 7<link rel="home" href="../../../../boost_asio.html" title="Boost.Asio"> 8<link rel="up" href="../cancel.html" title="basic_stream_socket::cancel"> 9<link rel="prev" href="overload1.html" title="basic_stream_socket::cancel (1 of 2 overloads)"> 10<link rel="next" href="../close.html" title="basic_stream_socket::close"> 11</head> 12<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> 13<table cellpadding="2" width="100%"><tr> 14<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td> 15<td align="center"><a href="../../../../../../index.html">Home</a></td> 16<td align="center"><a href="../../../../../../libs/libraries.htm">Libraries</a></td> 17<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> 18<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> 19<td align="center"><a href="../../../../../../more/index.htm">More</a></td> 20</tr></table> 21<hr> 22<div class="spirit-nav"> 23<a accesskey="p" href="overload1.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../cancel.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../boost_asio.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../close.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a> 24</div> 25<div class="section"> 26<div class="titlepage"><div><div><h5 class="title"> 27<a name="boost_asio.reference.basic_stream_socket.cancel.overload2"></a><a class="link" href="overload2.html" title="basic_stream_socket::cancel (2 of 2 overloads)">basic_stream_socket::cancel 28 (2 of 2 overloads)</a> 29</h5></div></div></div> 30<p> 31 <span class="emphasis"><em>Inherited from basic_socket.</em></span> 32 </p> 33<p> 34 Cancel all asynchronous operations associated with the socket. 35 </p> 36<pre class="programlisting">void cancel( 37 boost::system::error_code & ec); 38</pre> 39<p> 40 This function causes all outstanding asynchronous connect, send and receive 41 operations to finish immediately, and the handlers for cancelled operations 42 will be passed the <code class="computeroutput">boost::asio::error::operation_aborted</code> 43 error. 44 </p> 45<h6> 46<a name="boost_asio.reference.basic_stream_socket.cancel.overload2.h0"></a> 47 <span class="phrase"><a name="boost_asio.reference.basic_stream_socket.cancel.overload2.parameters"></a></span><a class="link" href="overload2.html#boost_asio.reference.basic_stream_socket.cancel.overload2.parameters">Parameters</a> 48 </h6> 49<div class="variablelist"> 50<p class="title"><b></b></p> 51<dl class="variablelist"> 52<dt><span class="term">ec</span></dt> 53<dd><p> 54 Set to indicate what error occurred, if any. 55 </p></dd> 56</dl> 57</div> 58<h6> 59<a name="boost_asio.reference.basic_stream_socket.cancel.overload2.h1"></a> 60 <span class="phrase"><a name="boost_asio.reference.basic_stream_socket.cancel.overload2.remarks"></a></span><a class="link" href="overload2.html#boost_asio.reference.basic_stream_socket.cancel.overload2.remarks">Remarks</a> 61 </h6> 62<p> 63 Calls to <code class="computeroutput">cancel()</code> will always fail with <code class="computeroutput">boost::asio::error::operation_not_supported</code> 64 when run on Windows XP, Windows Server 2003, and earlier versions of 65 Windows, unless BOOST_ASIO_ENABLE_CANCELIO is defined. However, the CancelIo 66 function has two issues that should be considered before enabling its 67 use: 68 </p> 69<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> 70<li class="listitem"> 71 It will only cancel asynchronous operations that were initiated in 72 the current thread. 73 </li> 74<li class="listitem"> 75 It can appear to complete without error, but the request to cancel 76 the unfinished operations may be silently ignored by the operating 77 system. Whether it works or not seems to depend on the drivers that 78 are installed. 79 </li> 80</ul></div> 81<p> 82 For portable cancellation, consider using one of the following alternatives: 83 </p> 84<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> 85<li class="listitem"> 86 Disable asio's I/O completion port backend by defining BOOST_ASIO_DISABLE_IOCP. 87 </li> 88<li class="listitem"> 89 Use the <code class="computeroutput">close()</code> function to simultaneously cancel the 90 outstanding operations and close the socket. 91 </li> 92</ul></div> 93<p> 94 When running on Windows Vista, Windows Server 2008, and later, the CancelIoEx 95 function is always used. This function does not have the problems described 96 above. 97 </p> 98</div> 99<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> 100<td align="left"></td> 101<td align="right"><div class="copyright-footer">Copyright © 2003-2020 Christopher M. 102 Kohlhoff<p> 103 Distributed under the Boost Software License, Version 1.0. (See accompanying 104 file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) 105 </p> 106</div></td> 107</tr></table> 108<hr> 109<div class="spirit-nav"> 110<a accesskey="p" href="overload1.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../cancel.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../boost_asio.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../close.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a> 111</div> 112</body> 113</html> 114