<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<refentry xmlns="http://docbook.org/ns/docbook" xml:id="function.socket-accept">
 <refnamediv>
  <refname>socket_accept</refname>
  <refpurpose>Accepts a connection on a socket</refpurpose>
 </refnamediv>
 
 <refsect1 role="description">
  &reftitle.description;
  <methodsynopsis>
   <type>resource</type><methodname>socket_accept</methodname>
   <methodparam><type>resource</type><parameter>socket</parameter></methodparam>
  </methodsynopsis>
  <para>
   After the socket <parameter>socket</parameter> has been created
   using <function>socket_create</function>, bound to a name with
   <function>socket_bind</function>, and told to listen for connections
   with <function>socket_listen</function>, this function will accept
   incoming connections on that socket. Once a successful connection
   is made, a new socket resource is returned, which may be used
   for communication. If there are multiple connections queued on
   the socket, the first will be used. If there are no pending
   connections, <function>socket_accept</function> will block until
   a connection becomes present. If <parameter>socket</parameter>
   has been made non-blocking using
   <function>socket_set_blocking</function> or
   <function>socket_set_nonblock</function>, &false; will be returned.
  </para>
  <para>
   The socket resource returned by
   <function>socket_accept</function> may not be used to accept new
   connections. The original listening socket
   <parameter>socket</parameter>, however, remains open and may be
   reused.
  </para>
 </refsect1>

 <refsect1 role="parameters">
  &reftitle.parameters;
  <para>
   <variablelist>
    <varlistentry>
     <term><parameter>socket</parameter></term>
     <listitem>
      <para>
       A valid socket resource created with <function>socket_create</function>.
      </para>
     </listitem>
    </varlistentry>
   </variablelist>
  </para>
 </refsect1>

 <refsect1 role="returnvalues">
  &reftitle.returnvalues;
  <para>
   Returns a new socket resource on success, or &false; on error. The actual
   error code can be retrieved by calling
   <function>socket_last_error</function>. This error code may be passed to
   <function>socket_strerror</function> to get a textual explanation of the
   error.
  </para>
 </refsect1>

 <refsect1 role="seealso">
  &reftitle.seealso;
  <para>
   <simplelist>
    <member><function>socket_connect</function></member>
    <member><function>socket_listen</function></member>
    <member><function>socket_create</function></member>
    <member><function>socket_bind</function></member>
    <member><function>socket_strerror</function></member>
   </simplelist>
  </para>
 </refsect1>

</refentry>

<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->