<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.5 $ -->
<!-- splitted from ./en/functions/sockets.xml, last change in rev 1.8 -->
  <refentry id="function.socket-strerror">
   <refnamediv>
    <refname>socket_strerror</refname>
    <refpurpose>Return a string describing a socket error</refpurpose>
   </refnamediv>
   <refsect1>
    <title>Description</title>
     <methodsynopsis>
      <type>string</type><methodname>socket_strerror</methodname>
      <methodparam><type>int</type><parameter>errno</parameter></methodparam>
     </methodsynopsis>
    &warn.experimental.func;
    <para>
     <function>socket_strerror</function> takes as its
     <parameter>errno</parameter> parameter a socket error code as returned by
     <function>socket_last_error</function> and returns the corresponding
     explanatory text. This makes it a bit more pleasant to figure out why
     something didn't work; for instance, instead of having to track down a
     system include file to find out what '-111' means, you just pass it to
     <function>socket_strerror</function>, and it tells you what happened.
    </para>
    <para>
     <example>
      <title><function>socket_strerror</function> example</title>
      <programlisting role="php">
<![CDATA[
<?php
if (false == ($socket = @socket_create(AF_INET, SOCK_STREAM, SOL_TCP))) {
   echo "socket_create() failed: reason: " . socket_strerror(socket_last_error()) . "\n";
} 

if (false == (@socket_bind($socket, '127.0.0.1', 80))) {
   echo "socket_bind() failed: reason: " . socket_strerror(socket_last_error($socket)) . "\n";
}
?>
]]>
      </programlisting>
      <para>
       The expected output from the above example (assuming the script
       is not run with root privileges):
       <screen>
        socket_bind() failed: reason: Permission denied
       </screen>
      </para>
     </example>
    </para>
    <para>
     See also 
     <function>socket_accept</function>,
     <function>socket_bind</function>,
     <function>socket_connect</function>,
     <function>socket_listen</function>, and
     <function>socket_create</function>.
    </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:"../../../../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
-->