<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>basic_socket_acceptor::async_accept (2 of 2 overloads)</title>
<link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../../boost_asio.html" title="Boost.Asio">
<link rel="up" href="../async_accept.html" title="basic_socket_acceptor::async_accept">
<link rel="prev" href="overload1.html" title="basic_socket_acceptor::async_accept (1 of 2 overloads)">
<link rel="next" href="../basic_socket_acceptor.html" title="basic_socket_acceptor::basic_socket_acceptor">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="overload1.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../async_accept.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="../basic_socket_acceptor.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h5 class="title">
<a name="boost_asio.reference.basic_socket_acceptor.async_accept.overload2"></a><a class="link" href="overload2.html" title="basic_socket_acceptor::async_accept (2 of 2 overloads)">basic_socket_acceptor::async_accept
          (2 of 2 overloads)</a>
</h5></div></div></div>
<p>
            Start an asynchronous accept.
          </p>
<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span>
    <span class="keyword">typename</span> <a class="link" href="../../SocketService.html" title="Socket service requirements">SocketService</a><span class="special">,</span>
    <span class="keyword">typename</span> <a class="link" href="../../AcceptHandler.html" title="Accept handler requirements">AcceptHandler</a><span class="special">&gt;</span>
<span class="keyword">void</span> <span class="identifier">async_accept</span><span class="special">(</span>
    <span class="identifier">basic_socket</span><span class="special">&lt;</span> <span class="identifier">protocol_type</span><span class="special">,</span> <span class="identifier">SocketService</span> <span class="special">&gt;</span> <span class="special">&amp;</span> <span class="identifier">peer</span><span class="special">,</span>
    <span class="identifier">endpoint_type</span> <span class="special">&amp;</span> <span class="identifier">peer_endpoint</span><span class="special">,</span>
    <span class="identifier">AcceptHandler</span> <span class="identifier">handler</span><span class="special">);</span>
</pre>
<p>
            This function is used to asynchronously accept a new connection into
            a socket, and additionally obtain the endpoint of the remote peer. The
            function call always returns immediately.
          </p>
<a name="boost_asio.reference.basic_socket_acceptor.async_accept.overload2.parameters"></a><h6>
<a name="id1021391"></a>
            <a class="link" href="overload2.html#boost_asio.reference.basic_socket_acceptor.async_accept.overload2.parameters">Parameters</a>
          </h6>
<div class="variablelist">
<p class="title"><b></b></p>
<dl>
<dt><span class="term">peer</span></dt>
<dd><p>
                  The socket into which the new connection will be accepted. Ownership
                  of the peer object is retained by the caller, which must guarantee
                  that it is valid until the handler is called.
                </p></dd>
<dt><span class="term">peer_endpoint</span></dt>
<dd><p>
                  An endpoint object into which the endpoint of the remote peer will
                  be written. Ownership of the peer_endpoint object is retained by
                  the caller, which must guarantee that it is valid until the handler
                  is called.
                </p></dd>
<dt><span class="term">handler</span></dt>
<dd>
<p>
                  The handler to be called when the accept operation completes. Copies
                  will be made of the handler as required. The function signature
                  of the handler must be: 
</p>
<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">handler</span><span class="special">(</span>
  <span class="keyword">const</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">system</span><span class="special">::</span><span class="identifier">error_code</span><span class="special">&amp;</span> <span class="identifier">error</span> <span class="comment">// Result of operation.
</span><span class="special">);</span> 
</pre>
<p>
                  Regardless of whether the asynchronous operation completes immediately
                  or not, the handler will not be invoked from within this function.
                  Invocation of the handler will be performed in a manner equivalent
                  to using <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">asio</span><span class="special">::</span><span class="identifier">io_service</span><span class="special">::</span><span class="identifier">post</span><span class="special">()</span></code>.
                </p>
</dd>
</dl>
</div>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2003 - 2010 Christopher M. Kohlhoff<p>
        Distributed under the Boost Software License, Version 1.0. (See accompanying
        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>)
      </p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="overload1.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../async_accept.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="../basic_socket_acceptor.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>
