<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<refentry xmlns="http://docbook.org/ns/docbook" xml:id="function.socket-last-error">
 <refnamediv>
  <refname>socket_last_error</refname>
  <refpurpose>Returns the last error on the socket </refpurpose>
 </refnamediv>
 
 <refsect1 role="description">
  &reftitle.description;
  <methodsynopsis>
   <type>int</type><methodname>socket_last_error</methodname>
   <methodparam choice="opt"><type>resource</type><parameter>socket</parameter></methodparam>
  </methodsynopsis>
  <para>
   If a socket resource is passed to this function, the last error which
   occurred on this particular socket is returned. If the socket resource is
   omitted, the error code of the last failed socket function is returned.
   The latter is particularly helpful for functions like
   <function>socket_create</function> which don't return a socket on
   failure and <function>socket_select</function> which can fail for reasons
   not directly tied to a particular socket.  The error code is suitable to
   be fed to <function>socket_strerror</function> which returns a string
   describing the given error code.
  </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>
   This function returns a socket error code.
  </para>
 </refsect1>

 <refsect1 role="examples">
  &reftitle.examples;
  <para>
   <example>
    <title><function>socket_last_error</function> example</title>
    <programlisting role="php">
<![CDATA[
<?php
$socket = @socket_create(AF_INET, SOCK_STREAM, SOL_TCP);

if ($socket === false) {
    $errorcode = socket_last_error();
    $errormsg = socket_strerror($errorcode);
    
    die("Couldn't create socket: [$errorcode] $errormsg");
}
?>
]]>
    </programlisting>
   </example>
  </para>
 </refsect1>

 <refsect1 role="notes">
  &reftitle.notes;
  <note>
   <para>
    <function>socket_last_error</function> does not clear the error code, use
    <function>socket_clear_error</function> for this purpose.
   </para>
  </note>
 </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
-->