cvs: phpdoc-de /reference/sockets/functions socket-getpeername.xml socket-getsockname.xml socket-last-error.xml socket-listen.xml socket-read.xml
socket-recv.xml socket-recvfrom.xml socket-select.xml
| From: | Cornelia Boenigk | Date: | Wed, 02 Jan 2008 22:07:10 +0000 |
| Subject: | cvs: phpdoc-de /reference/sockets/functions socket-getpeername.xml socket-getsockname.xml socket-last-error.xml socket-listen.xml socket-read.xml socket-recv.xml socket-recvfrom.xml socket-select.xml |
||
| Groups: | php.doc.de | ||
| Request: | Send a blank email to doc-de+get-2356@lists.php.net to get a copy of this message | ||
conni Wed Jan 2 22:07:10 2008 UTC
Modified files:
/phpdoc-de/reference/sockets/functions socket-getpeername.xml
socket-getsockname.xml
socket-last-error.xml
socket-listen.xml
socket-read.xml
socket-recv.xml
socket-recvfrom.xml
socket-select.xml
Log:
sync to en
http://cvs.php.net/viewvc.cgi/phpdoc-de/reference/sockets/functions/socket-getpeername.xml?r1=1.3&r2=1.4&diff_format=u Index: phpdoc-de/reference/sockets/functions/socket-getpeername.xml diff -u phpdoc-de/reference/sockets/functions/socket-getpeername.xml:1.3 phpdoc-de/reference/sockets/functions/socket-getpeername.xml:1.4 --- phpdoc-de/reference/sockets/functions/socket-getpeername.xml:1.3 Sat Jun 23 13:21:49 2007 +++ phpdoc-de/reference/sockets/functions/socket-getpeername.xml Wed Jan 2 22:07:10 2008 @@ -1,67 +1,112 @@ <?xml version="1.0" encoding="iso-8859-1"?> -<!-- $Revision: 1.3 $ --> -<!-- EN-Revision: 1.10 Maintainer: conni Status: ready --> +<!-- $Revision: 1.4 $ --> +<!-- EN-Revision: 1.14 Maintainer: conni Status: ready --> +<refentry xmlns="http://docbook.org/ns/docbook" xml:id="function.socket-getpeername"> + <refnamediv> + <refname>socket_getpeername</refname> + <refpurpose>Fragt das entfernte Ende eines gegebenen Sockets ab. Das Ergebnis ist vom Typ abhängig und ist entweder das Paar host/port oder ein Pfad des Unix-Dateisystems.</refpurpose> + </refnamediv> - <refentry xml:id="function.socket-getpeername" xmlns="http://docbook.org/ns/docbook"> - <refnamediv> - <refname>socket_getpeername</refname> - <refpurpose> - Fragt das entfernte Ende eines gegebenen Sockets ab. Das Ergebnis - ist vom Typ abhängig und ist entweder das Paar host/port oder ein - Pfad des Unix-Dateisystems. - </refpurpose> - </refnamediv> - <refsect1> - <title>Beschreibung</title> - <methodsynopsis> - <type>bool</type><methodname>socket_getpeername</methodname> - <methodparam><type>resource</type><parameter>socket</parameter></methodparam> - <methodparam><type>string</type><parameter role="reference">addr</parameter></methodparam> - <methodparam choice="opt"><type>int</type><parameter role="reference">port</parameter></methodparam> - </methodsynopsis> - - <para> - Falls der angegebene Socket vom Typ <constant>AF_INET</constant> - ist, gibt <function>socket_getpeername</function> die - <emphasis>IP Addresse</emphasis> des entfernten Peers im Parameter - <parameter>address</parameter> in der passenden Notation zurück - (z.B.<literal>127.0.0.1</literal> oder <literal>fe80::1</literal>). - Falls der optionale Parameter<parameter>port</parameter> angegeben - ist, wird der zugehörige Port ebenfalls zurückgegeben. - </para> - <para> - Falls der angegebene Socket vom Typ <constant>AF_UNIX</constant> - ist, gibt <function>socket_getpeername</function> den Pfad des - Unix-Dateisystems (z.B. <literal>/var/run/daemon.sock</literal>) - in dem Parameter <parameter>address</parameter> zurück. - </para> - <note> - <simpara> - <function>socket_getpeername</function> sollte nicht mit - <constant>AF_UNIX</constant>-Sockets verwendet werden, die mit - <function>socket_accept</function> erzeugt wurden. - Nur Sockets, die mit <function>socket_connect</function> erzeugt - wurden oder primäre Server-Sockets, nach einem Aufruf von - <function>socket_bind</function>, geben brauchbare Ergebnisse - zurück. - </simpara> - </note> - <para> - &return.success; <function>socket_getpeername</function> kann - auch &false; zurückgeben, wenn der Socket weder vom Typ - <constant>AF_INET</constant> noch vom Typ <constant>AF_INET6</constant> noch vom Typ - <constant>AF_UNIX</constant> - ist. In diesem Fall wird der letzte Socket-Fehlercode - <emphasis>nicht</emphasis> aktualisiert. - </para> - <para> - Siehe auch - <function>socket_getsockname</function>, - <function>socket_last_error</function> und - <function>socket_strerror</function>. - </para> - </refsect1> - </refentry> + <refsect1 role="description"> + &reftitle.description; + <methodsynopsis> + <type>bool</type><methodname>socket_getpeername</methodname> + <methodparam><type>resource</type><parameter>socket</parameter></methodparam> + <methodparam><type>string</type><parameter role="reference">address</parameter></methodparam> + <methodparam choice="opt"><type>int</type><parameter role="reference">port</parameter></methodparam> + </methodsynopsis> + <para> + Fragt das entfernte Ende eines gegebenen Sockets ab. Das Ergebnis ist vom + Typ abhängig und ist entweder das Paar host/port oder ein Pfad des + Unix-Dateisystems. + </para> + </refsect1> + + <refsect1 role="parameters"> + &reftitle.parameters; + <para> + <variablelist> + <varlistentry> + <term><parameter>socket</parameter></term> + <listitem> + <para> + Ein gültiger Socket-Deskriptor, der von <function>socket_create</function> + oder <function>socket_accept</function> erzeugt wurde. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term><parameter>address</parameter></term> + <listitem> + <para> + Falls der angegebene Socket vom Typ <constant>AF_INET</constant> oder + <constant>AF_INET6</constant> ist, gibt <function>socket_getpeername</function> + die <emphasis>IP Addresse</emphasis> des entfernten Peers im Parameter + <parameter>address</parameter> in der passenden Notation + (z.B.<literal>127.0.0.1</literal> oder <literal>fe80::1</literal>) im + Parameter <parameter>address</parameter> zurück. Falls der optionale + Parameter <parameter>port</parameter> angegeben ist, wird der zugehörige + Port ebenfalls zurückgegeben. + </para> + <para> + Falls der angegebene Socket vom Typ <constant>AF_UNIX</constant> + ist, gibt <function>socket_getpeername</function> den Pfad des + Unix-Dateisystems (z.B. <literal>/var/run/daemon.sock</literal>) + in dem Parameter <parameter>address</parameter> zurück. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term><parameter>port</parameter></term> + <listitem> + <para> + Falls angegeben, wird hier der mit <parameter>address</parameter> + verknüpfte Port zurückgegeben. + </para> + </listitem> + </varlistentry> + </variablelist> + </para> + </refsect1> + + <refsect1 role="returnvalues"> + &reftitle.returnvalues; + <para> + &return.success; <function>socket_getpeername</function> kann aber auch + &false; zurückgeben, falls der Socket weder vom Typ <constant>AF_INET</constant> + noch vom Typ <constant>AF_INET6</constant> oder <constant>AF_UNIX</constant> + ist. In diesem Fall wird der letzte Fehlercode für den Socket + <mphasis>nicht</emphasis> aktualisiert. + </para> + </refsect1> + + <refsect1 role="notes"> + &reftitle.notes; + <note> + <para> + <function>socket_getpeername</function> sollte nicht mit + <constant>AF_UNIX</constant>-Sockets verwendet werden, die mit + <function>socket_accept</function> erzeugt wurden. Nur Sockets, die mit + <function>socket_connect</function> erzeugt wurden oder primäre + Server-Sockets, nach einem Aufruf von <function>socket_bind</function>, + geben brauchbare Ergebnisse zurück. + </para> + </note> + </refsect1> + + <refsect1 role="seealso"> + &reftitle.seealso; + <para> + <simplelist> + <member><function>socket_getsockname</function></member> + <member><function>socket_last_error</function></member> + <member><function>socket_strerror</function></member> + </simplelist> + </para> + </refsect1> + +</refentry> + <!-- Keep this comment at the end of the file Local variables: http://cvs.php.net/viewvc.cgi/phpdoc-de/reference/sockets/functions/socket-getsockname.xml?r1=1.3&r2=1.4&diff_format=u Index: phpdoc-de/reference/sockets/functions/socket-getsockname.xml diff -u phpdoc-de/reference/sockets/functions/socket-getsockname.xml:1.3 phpdoc-de/reference/sockets/functions/socket-getsockname.xml:1.4 --- phpdoc-de/reference/sockets/functions/socket-getsockname.xml:1.3 Sat Jun 23 13:21:49 2007 +++ phpdoc-de/reference/sockets/functions/socket-getsockname.xml Wed Jan 2 22:07:10 2008 @@ -1,63 +1,102 @@ <?xml version="1.0" encoding="iso-8859-1"?> -<!-- $Revision: 1.3 $ --> -<!-- EN-Revision: 1.8 Maintainer: conni Status: ready --> - <refentry xml:id="function.socket-getsockname" xmlns="http://docbook.org/ns/docbook"> - <refnamediv> - <refname>socket_getsockname</refname> - <refpurpose> - Fragt das lokale Ende eines gegebenen Sockets ab. Das Ergebnis - ist vom Typ abhängig und ist entweder das Paar host/port oder ein - Pfad des Unix-Dateisystems. - </refpurpose> - </refnamediv> - <refsect1> - <title>Beschreibung</title> - <methodsynopsis> - <type>bool</type><methodname>socket_getsockname</methodname> - <methodparam><type>resource</type><parameter>socket</parameter></methodparam> - <methodparam><type>string</type><parameter role="reference">addr</parameter></methodparam> - <methodparam choice="opt"><type>int</type><parameter role="reference">port</parameter></methodparam> - </methodsynopsis> - <para> - Falls der angegebene Socket vom Typ <constant>AF_INET</constant> - ist, gibt <function>socket_getsockname</function> die - <emphasis>IP Addresse</emphasis> des lokalen Rechners im Parameter - <parameter>address</parameter> in Punktnotation zurück (z.B. - <literal>127.0.0.1</literal> oder <literal>fe80::1</literal>). Falls der optionale Parameter - <parameter>port</parameter> angegeben ist, - wird der zugehörige Port ebenfalls zurückgegeben. - </para> - <para> - Falls der angegebene Socket vom Typ <constant>AF_UNIX</constant> - ist, gibt <function>socket_getsockname</function> den Pfad des - Unix-Dateisystems (z.B. <literal>/var/run/daemon.sock</literal>) - in dem Parameter <parameter>address</parameter> zurück. - </para> - <note> - <simpara> - <function>socket_getpeername</function> sollte nicht mit - <constant>AF_UNIX</constant>-Sockets verwendet werden, die mit - <function>socket_accept</function> erzeugt wurden. - Nur Sockets, die mit <function>socket_connect</function> erzeugt - wurden oder primäre Server-Sockets, nach einem Aufruf von - <function>socket_bind</function>, geben brauchbare Ergebnisse - zurück. - </simpara> - </note> - <para> - &return.success; <function>socket_getsockname</function> kann - auch &false; zurückgeben, wenn der Socket weder vom Typ - <constant>AF_INET</constant> noch vom Typ <constant>AF_INET6</constant> noch vom Typ <constant>AF_UNIX</constant> ist. - In diesem Fall wird der letzte Socket-Fehlercode <emphasis>nicht</emphasis> aktualisiert. - </para> - <para> - See also - <function>socket_getpeername</function>, - <function>socket_last_error</function> und - <function>socket_strerror</function>. - </para> - </refsect1> - </refentry> +<!-- $Revision: 1.4 $ --> +<!-- EN-Revision: 1.12 Maintainer: conni Status: ready --> +<refentry xmlns="http://docbook.org/ns/docbook" xml:id="function.socket-getsockname"> + <refnamediv> + <refname>socket_getsockname</refname> + <refpurpose>Fragt das lokale Ende eines gegebenen Sockets ab. Das Ergebnis ist vom Typ abhängig und ist entweder das Paar host/port oder ein Pfad des Unix-Dateisystems.</refpurpose> + </refnamediv> + + <refsect1 role="description"> + &reftitle.description; + <methodsynopsis> + <type>bool</type><methodname>socket_getsockname</methodname> + <methodparam><type>resource</type><parameter>socket</parameter></methodparam> + <methodparam><type>string</type><parameter role="reference">addr</parameter></methodparam> + <methodparam choice="opt"><type>int</type><parameter role="reference">port</parameter></methodparam> + </methodsynopsis> + <note> + <simpara> + <function>socket_getpeername</function> sollte nicht mit + <constant>AF_UNIX</constant>-Sockets verwendet werden, die mit + <function>socket_connect</function> erzeugt wurden. Nur Sockets, die mit + <function>socket_accept</function> erzeugt wurden oder primäre + Server-Sockets, nach einem Aufruf von <function>socket_bind</function>, + geben brauchbare Ergebnisse zurück. + </simpara> + </note> + </refsect1> + + <refsect1 role="parameters"> + &reftitle.parameters; + <para> + <variablelist> + <varlistentry> + <term><parameter>socket</parameter></term> + <listitem> + <para> + Ein gültiger Socket-Deskriptor, der von <function>socket_create</function> + oder <function>socket_accept</function> erzeugt wurde. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term><parameter>addr</parameter></term> + <listitem> + <para> + Falls der angegebene Socket vom Typ <constant>AF_INET</constant> + ist, gibt <function>socket_getsockname</function> die + <emphasis>IP Addresse</emphasis> des lokalen Rechners im Parameter + <parameter>address</parameter> in Punktnotation zurück (z.B. + <literal>127.0.0.1</literal> oder <literal>fe80::1</literal>). Falls der + optionale Parameter <parameter>port</parameter> angegeben ist, + wird der zugehörige Port ebenfalls zurückgegeben. + </para> + <para> + Falls der angegebene Socket vom Typ <constant>AF_UNIX</constant> + ist, gibt <function>socket_getsockname</function> den Pfad des + Unix-Dateisystems (z.B. <literal>/var/run/daemon.sock</literal>) + in dem Parameter <parameter>address</parameter> zurück. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term><parameter>port</parameter></term> + <listitem> + <para> + Falls angegeben, wird hier der mit <parameter>address</parameter> + verknüpfte Port zurückgegeben. + </para> + </listitem> + </varlistentry> + </variablelist> + </para> + </refsect1> + + <refsect1 role="returnvalues"> + &reftitle.returnvalues; + <para> + &return.success; <function>socket_getsockname</function> kann auch &false; + zurückgeben, wenn der Socket weder vom Typ <constant>AF_INET</constant> noch + vom Typ <constant>AF_INET6</constant> oder <constant>AF_UNIX</constant> ist. + In diesem Fall wird der letzte Socket-Fehlercode <emphasis>nicht</emphasis> + aktualisiert. + </para> + </refsect1> + + <refsect1 role="seealso"> + &reftitle.seealso; + <para> + <simplelist> + <member><function>socket_getpeername</function></member> + <member><function>socket_last_error</function></member> + <member><function>socket_strerror</function></member> + </simplelist> + </para> + </refsect1> + +</refentry> + <!-- Keep this comment at the end of the file Local variables: http://cvs.php.net/viewvc.cgi/phpdoc-de/reference/sockets/functions/socket-last-error.xml?r1=1.3&r2=1.4&diff_format=u Index: phpdoc-de/reference/sockets/functions/socket-last-error.xml diff -u phpdoc-de/reference/sockets/functions/socket-last-error.xml:1.3 phpdoc-de/reference/sockets/functions/socket-last-error.xml:1.4 --- phpdoc-de/reference/sockets/functions/socket-last-error.xml:1.3 Sat Jun 23 13:21:49 2007 +++ phpdoc-de/reference/sockets/functions/socket-last-error.xml Wed Jan 2 22:07:10 2008 @@ -1,54 +1,90 @@ <?xml version="1.0" encoding="iso-8859-1"?> -<!-- $Revision: 1.3 $ --> -<!-- EN-Revision: 1.7 Maintainer: conni Status: ready --> +<!-- $Revision: 1.4 $ --> +<!-- EN-Revision: 1.12 Maintainer: conni Status: ready --> +<refentry xmlns="http://docbook.org/ns/docbook" xml:id="function.socket-last-error"> + <refnamediv> + <refname>socket_last_error</refname> + <refpurpose>Gibt den letzten Fehler zurück, der an einem Socket aufgetreten ist.</refpurpose> + </refnamediv> - <refentry xml:id="function.socket-last-error" xmlns="http://docbook.org/ns/docbook"> - <refnamediv> - <refname>socket_last_error</refname> - <refpurpose>Gibt den letzten Fehler zurück, der an einem Socket aufgetreten ist. </refpurpose> - </refnamediv> - <refsect1> - <title>Beschreibung</title> - <methodsynopsis> - <type>int</type><methodname>socket_last_error</methodname> - <methodparam choice="opt"><type>resource</type><parameter>socket</parameter></methodparam> - </methodsynopsis> - <para> - Diese Funktion gibt einen Fehlercode für einen Socket zurück. - </para> - <para> - Falls ein Socket-Deskriptor an diese Funktion übergeben wird, wird - der letzte Fehler, der an diesem bestimmten Socket aufgetreten ist, - zurückgegeben. Falls kein Socket-Deskriptor übergeben wird, wird - der Fehlercode der letzten fehlgeschlagenen Socket-Funktion - zurückgegeben. - Letzteres ist besonders hilfreich für Funktionen wie - <function>socket_create</function>, die bei einem Fehler keinen - Socket zurückgibt, und <function>socket_select</function>, die aus - anderen Gründen, die nichts mit einem bestimmten Socket zu tun - haben, fehlschlagen kann. Der Fehlercode kann an die Funktion - <function>socket_strerror</function> übergeben werden, die eine - textuelle Beschreibung dieses Fehlercodes zurückgibt. - <programlisting role="php"> + <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> + Wenn ein Socket-Deskriptor an diese Funktion übergeben wird, wird der letzte + Fehler, der an diesem bestimmten Socket aufgetreten ist, zurückgegeben. + Falls kein Socket-Deskriptor übergeben wird, wird der Fehlercode der letzten + fehlgeschlagenen Socket-Funktion zurückgegeben. Letzteres ist besonders + hilfreich für Funktionen wie <function>socket_create</function>, die bei + einem Fehler keinen Socket zurückgibt, oder <function>socket_select</function>, + die aus anderen Gründen, die nichts mit einem bestimmten Socket zu tun + haben, fehlschlagen kann. Der Fehlercode kann an die Funktion + <function>socket_strerror</function> übergeben werden, die eine textuelle + Beschreibung dieses Fehlercodes zurückgibt. + </para> + </refsect1> + + <refsect1 role="parameters"> + &reftitle.parameters; + <para> + <variablelist> + <varlistentry> + <term><parameter>socket</parameter></term> + <listitem> + <para> + Ein gültiger Socket-Deskriptor, der von <function>socket_create</function> erzeugt wurde. + </para> + </listitem> + </varlistentry> + </variablelist> + </para> + </refsect1> + + <refsect1 role="returnvalues"> + &reftitle.returnvalues; + <para> + Diese Funktion gibt den Fehlercode eines Socket-Fehlers zurück. + </para> + </refsect1> + + <refsect1 role="examples"> + &reftitle.examples; + <para> + <example> + <title><function>socket_last_error</function> example</title> + <programlisting role="php"> <![CDATA[ <?php -if (false == ($socket = @socket_create(AF_INET, SOCK_STREAM, SOL_TCP))) { - die("Konnte keinen Socket erzeugen, der Fehlercode ist: " . socket_last_error() . - ",error message is: " . socket_strerror(socket_last_error())); +$socket = @socket_create(AF_INET, SOCK_STREAM, SOL_TCP); + +if ($socket === false) { + $errorcode = socket_last_error(); + $errormsg = socket_strerror($errorcode); + + die("Konnte keinen Socket erzeugen: [$errorcode] $errormsg"); } ?> ]]> - </programlisting> - </para> - <note> - <para> - <function>socket_last_error</function> löscht den Fehlercode - nicht. Dafür müssen Sie die Funktion - <function>socket_clear_error</function> aufrufen. - </para> - </note> - </refsect1> - </refentry> + </programlisting> + </example> + </para> + </refsect1> + + <refsect1 role="notes"> + &reftitle.notes; + <note> + <para> + <function>socket_last_error</function> löscht den Fehlercode nicht. Dazu + müssesn Sie <function>socket_clear_error</function> aufrufen. + </para> + </note> + </refsect1> + +</refentry> + <!-- Keep this comment at the end of the file Local variables: http://cvs.php.net/viewvc.cgi/phpdoc-de/reference/sockets/functions/socket-listen.xml?r1=1.3&r2=1.4&diff_format=u Index: phpdoc-de/reference/sockets/functions/socket-listen.xml diff -u phpdoc-de/reference/sockets/functions/socket-listen.xml:1.3 phpdoc-de/reference/sockets/functions/socket-listen.xml:1.4 --- phpdoc-de/reference/sockets/functions/socket-listen.xml:1.3 Sat Jun 23 13:21:49 2007 +++ phpdoc-de/reference/sockets/functions/socket-listen.xml Wed Jan 2 22:07:10 2008 @@ -1,71 +1,100 @@ <?xml version="1.0" encoding="iso-8859-1"?> -<!-- $Revision: 1.3 $ --> -<!-- EN-Revision: 1.5 Maintainer: conni Status: ready --> +<!-- $Revision: 1.4 $ --> +<!-- EN-Revision: 1.9 Maintainer: conni Status: ready --> +<refentry xmlns="http://docbook.org/ns/docbook" xml:id="function.socket-listen"> + <refnamediv> + <refname>socket_listen</refname> + <refpurpose>Hört einen Socket nach Verbindungsanforderungen ab</refpurpose> + </refnamediv> - <refentry xml:id="function.socket-listen" xmlns="http://docbook.org/ns/docbook"> - <refnamediv> - <refname>socket_listen</refname> - <refpurpose>Hört einen Socket nach Verbindungsanforderungen ab </refpurpose> - </refnamediv> - <refsect1> - <title>Beschreibung</title> - <methodsynopsis> - <type>bool</type><methodname>socket_listen</methodname> - <methodparam><type>resource</type><parameter>socket</parameter></methodparam> - <methodparam choice="opt"><type>int</type><parameter>backlog</parameter></methodparam> - </methodsynopsis> - <para> - Nachdem der Socket <parameter>socket</parameter> mit - <function>socket_create</function> erzeugt und mit - <function>socket_bind</function> mit einem Namen verknüpft wurde, - wird er angewiesen, nach hereinkommenden Verbindungsanforderungen - an dem Socket <parameter>socket</parameter> zu horchen. - </para> - <para> - Maximal werden <parameter>backlog</parameter> hereinkommende - Verbindungsanforderungen zur späteren Verarbeitung in die - Warteschlange gestellt. Falls eine Verbindungsanforderung ankommt, - wenn die Warteschlange voll ist, bekommt der Client eine - Fehlermeldung mit dem Hinweis <literal>ECONNREFUSED</literal>. - Oder, falls das zugrundeliegende Protokoll eine wiederholte - Übertragung unterstützt, wird die Anforderung ignoriert, so dass - weitere Verbindungsversuche möglicherweise erfolgreich sind. - </para> - <note> - <para> - Die maximale Anzahl, der im Parameter <parameter>backlog</parameter> - angegebenen Einträge der Warteschlange, hängt entscheidend vom - darunterliegenden Betriebssystem ab. Auf Linux-Systemen wird die - Zahl stillschweigend auf <constant>SOMAXCONN</constant> begrenzt. - Wenn auf Win32-Systemen <constant>SOMAXCONN</constant> gesetzt - ist, ist der Dienstanbieter verantwortlich für den Socket und muss - die Warteschlange auf einen <emphasis>vernünftigen</emphasis> - Maximalwert begrenzen. Es gibt für diese Systeme keine - standardmässige Möglichkeit, den aktuellen Wert herauszufinden. - </para> - </note> - <para> - <function>socket_listen</function> kann nur mit Sockets vom Typ - <constant>SOCK_STREAM</constant> oder - <constant>SOCK_SEQPACKET</constant> benutzt werden. - </para> - <para> - &return.success; Der Fehlercode kann mit der Funktion - <function>socket_last_error</function> abgefragt werden. Dieser - Fehlercode kann an die Funktion <function>socket_strerror</function> - übergeben werden, um eine textuelle Beschreibung des Fehlers zu - erhalten. - </para> - <para> - Siehe auch - <function>socket_accept</function>, - <function>socket_bind</function>, - <function>socket_connect</function>, - <function>socket_create</function> und - <function>socket_strerror</function>. - </para> - </refsect1> - </refentry> + <refsect1 role="description"> + &reftitle.description; + <methodsynopsis> + <type>bool</type><methodname>socket_listen</methodname> + <methodparam><type>resource</type><parameter>socket</parameter></methodparam> + <methodparam choice="opt"><type>int</type><parameter>backlog</parameter></methodparam> + </methodsynopsis> + <para> + Nachdem der Socket <parameter>socket</parameter> mit <function>socket_create</function> + erzeugt und mit <function>socket_bind</function> mit einem Namen verknüpft + wurde, wird er angewiesen, nach hereinkommenden Verbindungsanforderungen + an dem Socket <parameter>socket</parameter> zu horchen. + </para> + <para> + <function>socket_listen</function> kann nur zusammen mit Sockets vom Typ + <constant>SOCK_STREAM</constant> oder <constant>SOCK_SEQPACKET</constant> + verwendet werden. + </para> + </refsect1> + + <refsect1 role="parameters"> + &reftitle.parameters; + <para> + <variablelist> + <varlistentry> + <term><parameter>socket</parameter></term> + <listitem> + <para> + Ein gültiger Socket-Deskriptor, der von <function>socket_create</function> erzeugt wurde. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term><parameter>backlog</parameter></term> + <listitem> + <para> + Maximal werden <parameter>backlog</parameter> hereinkommende + Verbindungsanforderungen zur späteren Verarbeitung in die + Warteschlange gestellt. Falls eine Verbindungsanforderung ankommt, + wenn die Warteschlange voll ist, bekommt der Client eine + Fehlermeldung mit dem Hinweis <literal>ECONNREFUSED</literal>. + Oder, falls das zugrundeliegende Protokoll eine wiederholte + Übertragung unterstützt, wird die Anforderung ignoriert, so dass + weitere Verbindungsversuche möglicherweise erfolgreich sind. + </para> + <note> + <para> + Die maximale Anzahl, der im Parameter <parameter>backlog</parameter> + angegebenen Einträge der Warteschlange, hängt entscheidend vom + darunterliegenden Betriebssystem ab. Auf Linux-Systemen wird die + Zahl stillschweigend auf <constant>SOMAXCONN</constant> begrenzt. + Wenn auf Win32-Systemen <constant>SOMAXCONN</constant> gesetzt + ist, ist der Dienstanbieter verantwortlich für den Socket und muss + die Warteschlange auf einen <emphasis>vernünftigen</emphasis> + Maximalwert begrenzen. Es gibt für diese Systeme keine + standardmässige Möglichkeit, den aktuellen Wert herauszufinden. + </para> + </note> + </listitem> + </varlistentry> + </variablelist> + </para> + </refsect1> + + <refsect1 role="returnvalues"> + &reftitle.returnvalues; + <para> + &return.success; Der Fehlercode kann mit der Funktion + <function>socket_last_error</function> abgefragt werden. Dieser + Fehlercode kann an die Funktion <function>socket_strerror</function> + übergeben werden, um eine textuelle Beschreibung des Fehlers zu erhalten. + </para> + </refsect1> + + <refsect1 role="seealso"> + &reftitle.seealso; + <para> + <simplelist> + <member><function>socket_accept</function></member> + <member><function>socket_bind</function></member> + <member><function>socket_connect</function></member> + <member><function>socket_create</function></member> + <member><function>socket_strerror</function></member> + </simplelist> + </para> + </refsect1> + +</refentry> <!-- Keep this comment at the end of the file Local variables: http://cvs.php.net/viewvc.cgi/phpdoc-de/reference/sockets/functions/socket-read.xml?r1=1.3&r2=1.4&diff_format=u Index: phpdoc-de/reference/sockets/functions/socket-read.xml diff -u phpdoc-de/reference/sockets/functions/socket-read.xml:1.3 phpdoc-de/reference/sockets/functions/socket-read.xml:1.4 --- phpdoc-de/reference/sockets/functions/socket-read.xml:1.3 Sat Jun 23 13:21:49 2007 +++ phpdoc-de/reference/sockets/functions/socket-read.xml Wed Jan 2 22:07:10 2008 @@ -1,73 +1,138 @@ <?xml version="1.0" encoding="iso-8859-1"?> -<!-- $Revision: 1.3 $ --> -<!-- EN-Revision: 1.6 Maintainer: conni Status: ready --> +<!-- $Revision: 1.4 $ --> +<!-- EN-Revision: 1.10 Maintainer: conni Status: ready --> +<refentry xmlns="http://docbook.org/ns/docbook" xml:id="function.socket-read"> + <refnamediv> + <refname>socket_read</refname> + <refpurpose>Liest höchstens die angegebene Anzahl Bytes von einem Socket.</refpurpose> + </refnamediv> - <refentry xml:id="function.socket-read" xmlns="http://docbook.org/ns/docbook"> - <refnamediv> - <refname>socket_read</refname> - <refpurpose>Liest höchstens die angegebene Anzahl Bytes von einem Socket. </refpurpose> - </refnamediv> - <refsect1> - <title>Beschreibung</title> - <methodsynopsis> - <type>string</type><methodname>socket_read</methodname> - <methodparam><type>resource</type><parameter>socket</parameter></methodparam> - <methodparam><type>int</type><parameter>length</parameter></methodparam> - <methodparam choice="opt"><type>int</type><parameter>type</parameter></methodparam> - </methodsynopsis> - - <para> - Die Funktion <function>socket_read</function> liest von dem Socket - <parameter>socket</parameter>, der entweder mit - <function>socket_create</function> oder mit - <function>socket_accept</function> erzeugt wurde. Die Anzahl - Bytes, die höchstens gelesen wird, wird in dem Parameter - <parameter>length</parameter> angegeben. Anderenfalls können Sie mit - \r, \n, or \0 den Lesevorgang beenden (dies ist abhängig von dem - Parameter <parameter>type</parameter>, siehe weiter unten). - </para> - <para> - <function>socket_read</function> gibt bei Erfolg die Daten als String - zurück oder &false;, falls ein Fehler aufgetreten ist (oder auch, - wenn der entfernte Socket die Verbindung abgebrochen hat). Der - Fehlercode kann mit der Funktion <function>socket_last_error</function> - abgefragt werden. Dieser Fehlercode kann an die Funktion - <function>socket_strerror</function> übergeben werden, um eine - textuelle Beschreibung des Fehlers zu erhalten. - </para> - <note> - <para> - <function>socket_read</function> kann auch einen leeren String - zurückgeben (""), wenn es keine Daten mehr zu lesen gibt. - </para> - </note> - <para> - Der optionale Parameter <parameter>type</parameter> ist eine vordefinierte Konstante: - <itemizedlist> - <listitem> - <simpara> - PHP_BINARY_READ - benutzt die <literal>read()</literal> Funktion des Systems. Sicher Zum Lesen von Binärdaten (und Standardeinstellung in PHP >= 4.1.0). - </simpara> - </listitem> - <listitem> - <simpara> - PHP_NORMAL_READ - Der Lesevorgang wird mit \n oder \r beendet. (Standardeinstellung in PHP <= 4.0.6) - </simpara> - </listitem> - </itemizedlist> - </para> - <para> - See also - <function>socket_accept</function>, - <function>socket_bind</function>, - <function>socket_connect</function>, - <function>socket_listen</function>, - <function>socket_last_error</function>, - <function>socket_strerror</function> und - <function>socket_write</function>. - </para> - </refsect1> - </refentry> + <refsect1 role="description"> + &reftitle.description; + <methodsynopsis> + <type>string</type><methodname>socket_read</methodname> + <methodparam><type>resource</type><parameter>socket</parameter></methodparam> + <methodparam><type>int</type><parameter>length</parameter></methodparam> + <methodparam choice="opt"><type>int</type><parameter>type</parameter></methodparam> + </methodsynopsis> + <para> + Die Funktion <function>socket_read</function> liest von dem Socket + <parameter>socket</parameter>, der entweder mit <function>socket_create</function> + oder mit <function>socket_accept</function> erzeugt wurde. + </para> + </refsect1> + + <refsect1 role="parameters"> + &reftitle.parameters; + <para> + <variablelist> + <varlistentry> + <term><parameter>socket</parameter></term> + <listitem> + <para> + Ein gültiger Socket-Deskriptor, der von <function>socket_create</function> + oder <function>socket_accept</function> erzeugt wurde. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term><parameter>length</parameter></term> + <listitem> + <para> + Die Anzahl Bytes, die höchstens gelesen wird, wird in dem Parameter + <parameter>length</parameter> angegeben. Anderenfalls können Sie mit + \r, \n, oder \0 den Lesevorgang beenden (dies ist abhängig von dem + Parameter <parameter>type</parameter>, siehe weiter unten). + </para> + </listitem> + </varlistentry> + <varlistentry> + <term><parameter>type</parameter></term> + <listitem> + <para> + Der optionale Parameter <parameter>type</parameter> ist eine + vordefinierte Konstante: + <itemizedlist> + <listitem> + <simpara> + <constant>PHP_BINARY_READ</constant> (Standardwert) - benutzt die + Systemfunktion <literal>recv()</literal>. Das ist sicher zum Lesen + von Binärdaten. + </simpara> + </listitem> + <listitem> + <simpara> + <constant>PHP_NORMAL_READ</constant> - Lesevorgänge werden bei \n oder \r beendet. + </simpara> + </listitem> + </itemizedlist> + </para> + </listitem> + </varlistentry> + </variablelist> + </para> + </refsect1> + + <refsect1 role="returnvalues"> + &reftitle.returnvalues; + <para> + <function>socket_read</function> gibt bei Erfolg die Daten als String + zurück oder &false;, falls ein Fehler aufgetreten ist (oder auch, wenn der + entfernte Host die Verbindung abgebrochen hat). Der Fehlercode kann mit + <function>socket_last_error</function> abgefragt werden. Dieser Fehlercode + kann an die Funktion <function>socket_strerror</function> übergeben werden, + um eine textuelle Beschreibung des Fehlers zu erhalten. + </para> + <note> + <para> + <function>socket_read</function> gibt einen leeren String ("") zurück, wenn + es keine Daten mehr zu lesen gibt. + </para> + </note> + </refsect1> + + <refsect1 role="changelog"> + &reftitle.changelog; + <para> + <informaltable> + <tgroup cols="2"> + <thead> + <row> + <entry>&Version;</entry> + <entry>&Description;</entry> + </row> + </thead> + <tbody> + <row> + <entry>4.1.0</entry> + <entry> + Der Vorgabewert für <parameter>type</parameter> wurde von + <constant>PHP_NORMAL_READ</constant> auf + <constant>PHP_BINARY_READ</constant> gesetzt. + </entry> + </row> + </tbody> + </tgroup> + </informaltable> + </para> + </refsect1> + + <refsect1 role="seealso"> + &reftitle.seealso; + <para> + <simplelist> + <member><function>socket_accept</function></member> + <member><function>socket_bind</function></member> + <member><function>socket_connect</function></member> + <member><function>socket_listen</function></member> + <member><function>socket_last_error</function></member> + <member><function>socket_strerror</function></member> + <member><function>socket_write</function></member> + </simplelist> + </para> + </refsect1> + +</refentry> <!-- Keep this comment at the end of the file Local variables: http://cvs.php.net/viewvc.cgi/phpdoc-de/reference/sockets/functions/socket-recv.xml?r1=1.3&r2=1.4&diff_format=u Index: phpdoc-de/reference/sockets/functions/socket-recv.xml diff -u phpdoc-de/reference/sockets/functions/socket-recv.xml:1.3 phpdoc-de/reference/sockets/functions/socket-recv.xml:1.4 --- phpdoc-de/reference/sockets/functions/socket-recv.xml:1.3 Sat Jun 23 13:21:49 2007 +++ phpdoc-de/reference/sockets/functions/socket-recv.xml Wed Jan 2 22:07:10 2008 @@ -1,25 +1,27 @@ <?xml version="1.0" encoding="iso-8859-1"?> -<!-- $Revision: 1.3 $ --> -<!-- EN-Revision: 1.6 Maintainer: conni Status: ready --> +<!-- $Revision: 1.4 $ --> +<!-- EN-Revision: 1.9 Maintainer: conni Status: ready --> +<refentry xmlns="http://docbook.org/ns/docbook" xml:id="function.socket-recv"> + <refnamediv> + <refname>socket_recv</refname> + <refpurpose>Empfängt Daten von einem verbundenen Socket</refpurpose> + </refnamediv> + + <refsect1 role="description"> + &reftitle.description; + <methodsynopsis> + <type>int</type><methodname>socket_recv</methodname> + <methodparam><type>resource</type><parameter>socket</parameter></methodparam> + <methodparam><type>string</type><parameter role="reference">buf</parameter></methodparam> + <methodparam><type>int</type><parameter>len</parameter></methodparam> + <methodparam><type>int</type><parameter>flags</parameter></methodparam> + </methodsynopsis> + <para> + &warn.undocumented.func; + </para> + </refsect1> - <refentry xml:id="function.socket-recv" xmlns="http://docbook.org/ns/docbook"> - <refnamediv> - <refname>socket_recv</refname> - <refpurpose>Empfängt Daten von einem verbundenen Socket </refpurpose> - </refnamediv> - <refsect1> - <title>Beschreibung</title> - <methodsynopsis> - <type>int</type><methodname>socket_recv</methodname> - <methodparam><type>resource</type><parameter>socket</parameter></methodparam> - <methodparam><type>string</type><parameter role="reference">buf</parameter></methodparam> - <methodparam><type>int</type><parameter>len</parameter></methodparam> <methodparam><type>int</type><parameter>flags</parameter></methodparam> - </methodsynopsis> - <para> - &warn.undocumented.func; - </para> - </refsect1> - </refentry> +</refentry> <!-- Keep this comment at the end of the file Local variables: http://cvs.php.net/viewvc.cgi/phpdoc-de/reference/sockets/functions/socket-recvfrom.xml?r1=1.3&r2=1.4&diff_format=u Index: phpdoc-de/reference/sockets/functions/socket-recvfrom.xml diff -u phpdoc-de/reference/sockets/functions/socket-recvfrom.xml:1.3 phpdoc-de/reference/sockets/functions/socket-recvfrom.xml:1.4 --- phpdoc-de/reference/sockets/functions/socket-recvfrom.xml:1.3 Sat Jun 23 13:21:49 2007 +++ phpdoc-de/reference/sockets/functions/socket-recvfrom.xml Wed Jan 2 22:07:10 2008 @@ -1,28 +1,236 @@ <?xml version="1.0" encoding="iso-8859-1"?> -<!-- $Revision: 1.3 $ --> -<!-- EN-Revision: 1.7 Maintainer: conni Status: ready --> +<!-- $Revision: 1.4 $ --> +<!-- EN-Revision: 1.13 Maintainer: conni Status: ready --> +<refentry xmlns="http://docbook.org/ns/docbook" xml:id="function.socket-recvfrom"> + <refnamediv> + <refname>socket_recvfrom</refname> + <refpurpose>Empfängt Daten von einem Socket, egal, ob verbindungsorientiert oder nicht</refpurpose> + </refnamediv> - <refentry xml:id="function.socket-recvfrom" xmlns="http://docbook.org/ns/docbook"> - <refnamediv> - <refname>socket_recvfrom</refname> - <refpurpose>Empfängt Daten von einem Socket, unabhängig von einer Verbindung </refpurpose> - </refnamediv> - <refsect1> - <title>Beschreibung</title> - <methodsynopsis> - <type>int</type><methodname>socket_recvfrom</methodname> - <methodparam><type>resource</type><parameter>socket</parameter></methodparam> - <methodparam><type>string</type><parameter role="reference">buf</parameter></methodparam> - <methodparam><type>int</type><parameter>len</parameter></methodparam> - <methodparam><type>int</type><parameter>flags</parameter></methodparam> - <methodparam><type>string</type><parameter role="reference">name</parameter></methodparam> - <methodparam choice="opt"><type>int</type><parameter role="reference">port</parameter></methodparam> - </methodsynopsis> + <refsect1 role="description"> + &reftitle.description; + <methodsynopsis> + <type>int</type><methodname>socket_recvfrom</methodname> + <methodparam><type>resource</type><parameter>socket</parameter></methodparam> + <methodparam><type>string</type><parameter role="reference">buf</parameter></methodparam> + <methodparam><type>int</type><parameter>len</parameter></methodparam> + <methodparam><type>int</type><parameter>flags</parameter></methodparam> + <methodparam><type>string</type><parameter role="reference">name</parameter></methodparam> + <methodparam choice="opt"><type>int</type><parameter role="reference">port</parameter></methodparam> + </methodsynopsis> + <para> + Die Funktion <function>socket_recvfrom</function> empfängt über den Socket + <parameter>socket</parameter> <parameter>len</parameter> Bytes von + <parameter>name</parameter> über den Port <parameter>port</parameter> (falls + der Socket nicht vom Typ <constant>AF_UNIX</constant> ist) und liest sie in + den Puffer <parameter>buf</parameter> ein. + <function>socket_recvfrom</function> kann dazu verwendet werden, um Daten + sowohl von verbundenen als auch unverbundenen Sockets zu lesen. Außerdem + können ein oder mehrere Flags gesetzt werden, um das Verhalten dieser + Funktion zu beeinflussen. + </para> + <para> + Die Parameter <parameter>name</parameter> und <parameter>port</parameter> + müsssen als Referenz übergeben werden. Wenn der Socket verbindungslos ist, + wird <parameter>name</parameter> auf die Internet-Protokolladresse des + entfernten Host oder auf den Pfad zum UNIX-Socket gesetzt. Ist der Socket + verbindungsorientiert, ist <parameter>name</parameter> &null;. Zusätzlich + enthält der Parameter <parameter>port</parameter> den Port des entfernten + Host, falls es sich um einen nicht verbundenen <constant>AF_INET</constant> + oder <constant>AF_INET6</constant> Socket handelt. + </para> + </refsect1> + + <refsect1 role="parameters"> + &reftitle.parameters; + <para> + <variablelist> + <varlistentry> + <term><parameter>socket</parameter></term> + <listitem> + <para> + <parameter>socket</parameter> muss ein Socket-Deskriptor sein, der zuvor + von <function>socket_create</function> erzeugt wurde. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term><parameter>buf</parameter></term> + <listitem> + <para> + Die empfangenen Daten werden in die Variable <parameter>buf</parameter> + eingelesen. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term><parameter>len</parameter></term> + <listitem> + <para> + Bis zu <parameter>len</parameter> Bytes werden vom entfernten Host gelesen. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term><parameter>flags</parameter></term> + <listitem> + <para> + Der Wert von <parameter>flags</parameter> kann eine beliebige Kombination + der folgenden Flags sein, die mit dem binären OR (<literal>|</literal>) + verknüpft werden. + </para> + + <table> + <title>Mögliche Werte für <parameter>flags</parameter></title> + <tgroup cols="2"> + <thead> + <row> + <entry>Flag</entry> + <entry>Beschreibung</entry> + </row> + </thead> + <tbody> + <row> + <entry><constant>MSG_OOB</constant></entry> + <entry> + Verarbeite bandexterne Daten. + </entry> + </row> + <row> + <entry><constant>MSG_PEEK</constant></entry> + <entry> + Lies Daten ab Anfang der Empfangs-Warteschlange, ohne die Daten + aus der Warteschlange zu löschen. + </entry> + </row> + <row> + <entry><constant>MSG_WAITALL</constant></entry> + <entry> + Blockiere so lange, bis mindestens <parameter>len</parameter> Daten + gelesen wurden. Wenn jedoch ein Signal empfangen wurde oder der + entfernte Host die Verbindung beendet, kann die Funktion auch weniger + Daten zurückgeben. + </entry> + </row> + <row> + <entry><constant>MSG_DONTWAIT</constant></entry> + <entry> + Wenn dieses Flag gesetzt ist, kehrt die Funktion zurück, auch wenn + sie normalerweise blockieren würde. + </entry> + </row> + </tbody> + </tgroup> + </table> + </listitem> + </varlistentry> + + <varlistentry> + <term><parameter>name</parameter></term> + <listitem> + <para> + Wenn der Socket vom Typ <constant>AF_UNIX</constant> ist, enthält + <parameter>name</parameter> den Pfad zu einer Datei. Anderenfalls, bei + nicht verbundenen Sockets, enthält <parameter>name</parameter> die + IP-Adresse des entfernten Hosts oder &null;, falls der Socket + verbindungsorientiert ist. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term><parameter>port</parameter></term> + <listitem> + <para> + Dieses Argument gilt nur für Sockets vom Typ <constant>AF_INET</constant> und <constant>AF_INET6</constant> und gibt den entfernten Port an, über den Daten empfangen werden. Falls der Socket verbindungsorientiert ist, ist <parameter>port</parameter> &null;. + </para> + </listitem> + </varlistentry> + + </variablelist> + </para> + </refsect1> + + <refsect1 role="returnvalues"> + &reftitle.returnvalues; + <para> + <function>socket_recvfrom</function> gibt die Anzahl der empfangenen Bytes + zurück oder -1, falls ein Fehler auftrat. Der aktuelle Fehlercode kann mit + <function>socket_last_error</function> abgefragt werden. Dieser Fehlercode + kann an die Funktion <function>socket_strerror</function> übergeben werden, + um eine textuelle Beschreibung des Fehlers zu erhalten. + </para> + </refsect1> + + <refsect1 role="examples"> + &reftitle.examples; + <para> + <example> + <title><function>socket_recvfrom</function> Beispiel</title> + <programlisting role="php"> +<![CDATA[ +<?php +error_reporting(E_ALL | E_STRICT); + +$socket = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP); +socket_bind($socket, '127.0.0.1', 1223); + +$from = ""; +$port = 0; +socket_recvfrom($socket, $buf, 12, 0, $from, $port); + +echo "$buf von entfernter Adresse $from über den entfernten Port $port empfangen." . PHP_EOL; +?> +]]> + </programlisting> <para> - &warn.undocumented.func; + Dieses Beispiel erzeugt einen UDP-Socket über Port 1223 des Hosts 127.0.0.1 + und gibt höchstens 12 Zeichen aus, die von einem entfernten Host empfangen + wurden. </para> - </refsect1> - </refentry> + </example> + </para> + </refsect1> + + <refsect1 role="changelog"> + &reftitle.changelog; + <para> + <informaltable> + <tgroup cols="2"> + <thead> + <row> + <entry>&Version;</entry> + <entry>&Description;</entry> + </row> + </thead> + <tbody> + <row> + <entry>4.3.0</entry> + <entry> + <function>socket_recvfrom</function> ist ab jetzt binary-safe. + </entry> + </row> + </tbody> + </tgroup> + </informaltable> + </para> + </refsect1> + + <refsect1 role="seealso"> + &reftitle.seealso; + <para> + <simplelist> + <member><function>socket_recv</function></member> + <member><function>socket_send</function></member> + <member><function>socket_sendto</function></member> + <member><function>socket_create</function></member> + </simplelist> + </para> + </refsect1> +</refentry> <!-- Keep this comment at the end of the file Local variables: http://cvs.php.net/viewvc.cgi/phpdoc-de/reference/sockets/functions/socket-select.xml?r1=1.3&r2=1.4&diff_format=u Index: phpdoc-de/reference/sockets/functions/socket-select.xml diff -u phpdoc-de/reference/sockets/functions/socket-select.xml:1.3 phpdoc-de/reference/sockets/functions/socket-select.xml:1.4 --- phpdoc-de/reference/sockets/functions/socket-select.xml:1.3 Sat Jun 23 13:21:49 2007 +++ phpdoc-de/reference/sockets/functions/socket-select.xml Wed Jan 2 22:07:10 2008 @@ -1,200 +1,247 @@ <?xml version="1.0" encoding="iso-8859-1"?> -<!-- $Revision: 1.3 $ --> -<!-- EN-Revision: 1.13 Maintainer: conni Status: ready --> +<!-- $Revision: 1.4 $ --> +<!-- EN-Revision: 1.17 Maintainer: conni Status: ready --> +<refentry xmlns="http://docbook.org/ns/docbook" xml:id="function.socket-select"> + <refnamediv> + <refname>socket_select</refname> + <refpurpose>Führt einen select() Systemaufruf auf den gegebenen Socket-Arrays aus wobei ein Zeitlimit bestimmt wird</refpurpose> + </refnamediv> - <refentry xml:id="function.socket-select" xmlns="http://docbook.org/ns/docbook"> - <refnamediv> - <refname>socket_select</refname> - <refpurpose>Führt einen select() Systemaufruf auf den gegebenen - Socket-Arrays aus, wobei mit tv_sec und tv_usec ein Zeitlimit - bestimmt wird. </refpurpose> - </refnamediv> - <refsect1> - <title>Beschreibung</title> - <methodsynopsis> - <type>int</type><methodname>socket_select</methodname> - <methodparam><type>array</type><parameter role="reference">read</parameter></methodparam> - <methodparam><type>array</type><parameter role="reference">write</parameter></methodparam> - <methodparam><type>array</type><parameter role="reference">except</parameter></methodparam> - <methodparam><type>int</type><parameter>tv_sec</parameter></methodparam> - <methodparam choice="opt"><type>int</type><parameter>tv_usec</parameter></methodparam> - </methodsynopsis> - <para> - Die Funktion <function>socket_select</function> nimmt als Parameter - Socket-Arrays entgegen und wartet, ob diese ihren Status ändern. - Diejenigen, die Hintergrundwissen über BSD Sockets haben, werden - feststellen, dass diese Socket-Arrays in Wirklichkeit die so - genannten Datei-Deskriptor-Mengen sind. Drei, voneinander - unabhängige Arrays mit Socket-Deskriptoren werden überwacht. - </para> - <para> - Die Sockets, die im <parameter>read</parameter> Array aufgelistet - sind, werden daraufhin überwacht, ob Zeichen zum Auslesen an den - Sockets verfügbar sind (um genauer zu sein: es wird überwacht, ob - das Auslesen den Socket blockiert - besonders aber, ob ein Socket - bereit ist, wenn er zu Ende gelesen hat. In diesem Fall gibt ein - <function>socket_read</function> einen leeren String zurück.) - </para> - <para> - Die Sockets, die im <parameter>write</parameter> Array aufgelistet - sind, werden daraufhin überwacht, ob ein Schreibvorgang den Socket - blockiert. - </para> - <para> - Die Sockets, die im <parameter>except</parameter> Array aufgelistet - sind, werden auf Ausnahmen überwacht. - </para> - <warning> - <para> - Beim Beenden werden alle Arrays aktualisiert, und zeigen an, welche - Sockets ihren Status geändert haben. - </para> - </warning> - <para> - Sie brauchen nicht jedes Array einzeln an - <function>socket_select</function> übergeben. Sie können leere - Arrays oder &null; stattdessen angeben. Vergessen Sie nicht, dass - diese Arrays <emphasis>by reference</emphasis> übergeben werden - müssen und dass sie verändert werden, nachdem die Funktion - <function>socket_select</function> beendet ist. - </para> - <para> - <example> - <title><function>socket_select</function> Beispiel</title> - <programlisting role="php"> + <refsect1 role="description"> + &reftitle.description; + <methodsynopsis> + <type>int</type><methodname>socket_select</methodname> + <methodparam><type>array</type><parameter role="reference">read</parameter></methodparam> + <methodparam><type>array</type><parameter role="reference">write</parameter></methodparam> + <methodparam><type>array</type><parameter role="reference">except</parameter></methodparam> + <methodparam><type>int</type><parameter>tv_sec</parameter></methodparam> + <methodparam choice="opt"><type>int</type><parameter>tv_usec</parameter></methodparam> + </methodsynopsis> + <para> + <function>socket_select</function> nimmt als Parameter Socket-Arrays entgegen + und wartet, ob diese ihren Status ändern. Diejenigen, die Hintergrundwissen + über BSD Sockets haben, werden feststellen, dass diese Socket-Arrays in + Wirklichkeit die so genannten Datei-Deskriptor-Mengen sind. Drei, voneinander + unabhängige Arrays mit Socket-Deskriptoren werden überwacht. + </para> + </refsect1> + + <refsect1 role="parameters"> + &reftitle.parameters; + <para> + <variablelist> + <varlistentry> + <term><parameter>read</parameter></term> + <listitem> + <para> + Die Sockets, die im <parameter>read</parameter> Array aufgelistet sind, + werden daraufhin überwacht, ob Zeichen zum Auslesen zur Verfügung + gestellt werden (um genauer zu sein: es wird überwacht, ob ein + Lesevorgang blockiert - ein Socket ist nämlich auch dann bereit, wenn er + bis zum Dateiende gelesen hat. In diesem Fall gibt + <function>socket_read</function> einen leeren String zurück.) + </para> + </listitem> + </varlistentry> + <varlistentry> + <term><parameter>write</parameter></term> + <listitem> + <para> + Die Sockets, die im <parameter>write</parameter> Array aufgelistet + sind, werden daraufhin überwacht, ob ein Schreibvorgang blockiert. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term><parameter>except</parameter></term> + <listitem> + <para> + Die Sockets, die im <parameter>except</parameter> Array aufgelistet + sind, werden auf Ausnahmen überwacht. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term><parameter>tv_sec</parameter></term> + <listitem> + <para> + <parameter>tv_sec</parameter> und <parameter>tv_usec</parameter> + bilden zusammen den <emphasis>timeout</emphasis> Parameter. Der + <emphasis>timeout</emphasis> ist eine obere Schranke für die Zeit, die + verstreichen kann, bis <function>socket_select</function> zurückkehrt. + <parameter>tv_sec</parameter> kann 0 sein, wodurch + <function>socket_select</function> sofort zurückkehrt. Dies ist + nützlich beim Polling. Falls der Parameter <parameter>tv_sec</parameter> + &null; ist (kein Timeout), kann <function>socket_select</function> + unendlich lange blockieren. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term><parameter>tv_usec</parameter></term> + <listitem> + <para> + </para> + </listitem> + </varlistentry> + </variablelist> + </para> + <warning> + <para> + Beim Beenden werden alle Arrays aktualisiert, und zeigen an, welche + Sockets ihren Status geändert haben. + </para> + </warning> + <para> + Sie brauchen nicht jedes Array einzeln an <function>socket_select</function> + übergeben. Sie können die Arrays auch weglassen und stattdessen leere + Arrays oder &null; angeben. Vergessen Sie nicht, dass diese Arrays + <emphasis>by reference</emphasis> übergeben werden müssen und dass sie + verändert werden, nachdem die Funktion <function>socket_select</function> + beendet ist. + </para> + <note> + <para> + Wegen einer Einschränkung in der aktuellen Zend Engine ist es nicht möglich, + eine Konstante, wie etwa &null;, direkt als Parameter an Funktionen zu + übergeben, die ihre Argumente als Referenzen erwarten. Sie können + stattdessen eine temporäre Variable oder einen Ausdruck, in dem der am + weitesten links stehende Teilausdruck eine temporäre Variable ist, benutzen. + <example> + <title>&null; mit <function>socket_select</function> benutzen:</title> + <programlisting role="php"> <![CDATA[ <?php -/* Das Array zum Lesen vorbereiten */ -$read = array($socket1, $socket2); - -$num_changed_sockets = socket_select($read, $write = NULL, $except = NULL, 0); - -if ($num_changed_sockets === false) { - /* Fehlerbehandlung */ -} else if ($num_changed_sockets > 0) { - /* Mindestes an einem Socket ist etwas interessantes passiert */ -} +$e = NULL; +socket_select($r, $w, $e, 0); ?> ]]> - </programlisting> - </example> - </para> - <note> - <para> - Wegen einer Einschränkung in der aktuellen Zend Engine ist es nicht - möglich, eine Konstante, wie etwa &null;, direkt als Parameter an - Funktionen zu übergeben, die Referenzen auf Parameter als Argumente - erwarten. Sie können stattdessen eine temporäre Variable oder einen - Ausdruck, in dem der am weitesten links stehende Teilausdruck eine - temporäre Variable ist, benutzen. - <example> - <title>&null; mit <function>socket_select</function> benutzen</title> - <programlisting role="php"> + </programlisting> + </example> + </para> + </note> + </refsect1> + + <refsect1 role="returnvalues"> + &reftitle.returnvalues; + <para> + Bei Erfolg gibt <function>socket_select</function> die Anzahl der + Socket-Deskriptoren zurück, die in den aktualisierten Arrays enthalten sind. + Falls der Timeout wirksam wird, bevor irgend etwas Interessantes passiert, + ist das Funktionsergebnis 0. Falls ein Fehler auftritt wird &false; + zurückgegeben. Der Fehlercode kann dann mit + <function>socket_last_error</function> abgefragt werden. + </para> + <note> + <para> + Wenn Sie einen Fehler aufspüren wollen, müssen Sie unbedingt den + Operator <literal>===</literal> benutzen. Weil + <function>socket_select</function> auch 0 zurückgeben kann, wird der + Vergleich mit <literal>==</literal> sonst zu &true; ausgewertet. + <example> + <title>Rückgaben von <function>socket_select</function> verstehen</title> + <programlisting role="php"> <![CDATA[ <?php -socket_select($r, $w, $e = NULL, 0); +$e = NULL; +if (false === socket_select($r, $w, $e, 0)) { + echo "socket_select() fehlgeschlagen, Grund: " . + socket_strerror(socket_last_error()) . "\n"; +} ?> ]]> - </programlisting> - </example> - </para> - </note> - <para> - <parameter>tv_sec</parameter> und <parameter>tv_usec</parameter> - bilden zusammen den <emphasis>timeout</emphasis> Parameter. Der - <emphasis>timeout</emphasis> ist nach oben durch die verstrichene - Zeit, bis <function>socket_select</function> zurückkehrt, begrenzt. - <parameter>tv_sec</parameter> kann 0 sein, wodurch - <function>socket_select</function> sofort zurückkehrt. Dies ist - nützlich beim Polling. Falls der Parameter - <parameter>tv_sec</parameter> &null; ist (kein Timeout), kann - <function>socket_select</function> unendlich lange blockieren. - </para> - <para> - Bei Erfolg gibt <function>socket_select</function> die Anzahl der - Socket-Deskriptoren zurück, die in den aktualisierten Arrays - enthalten sind. Falls der Timeout wirksam wird, bevor irgend etwas - Interessantes passiert, ist das Funktionsergebnis 0. Falls ein - Fehler auftritt wird &false; zurückgegeben. Der Fehlercode kann dann - mit <function>socket_last_error</function> abgefragt werden. - </para> - <note> - <para> - Wenn Sie einen Fehler aufspüren wollen, müssen Sie unbedingt den - Operator <literal>===</literal> benutzen. Weil - <function>socket_select</function> auch 0 zurückgeben kann, wird der - Vergleich mit <literal>==</literal> sonst zu &true; ausgewertet. - <example> - <title>Understanding <function>socket_select</function>'s result</title> - <programlisting role="php"> + </programlisting> + </example> + </para> + </note> + </refsect1> + + <refsect1 role="examples"> + &reftitle.examples; + <para> + <example> + <title><function>socket_select</function> Beispiel</title> + <programlisting role="php"> <![CDATA[ <?php -if (false === socket_select($r, $w, $e = NULL, 0)) { - echo "socket_select() failed, reason: " . - socket_strerror(socket_last_error()) . "\n"; +/* Das Array read vorbereiten */ +$read = array($socket1, $socket2); +$write = NULL; +$except = NULL; +$num_changed_sockets = socket_select($read, $write, $except, 0); + +if ($num_changed_sockets === false) { + /* Fehlerbehandlung */ +} else if ($num_changed_sockets > 0) { + /* Mindestens an einem Socket ist etwas Interessantes passiert */ } ?> ]]> - </programlisting> - </example> - </para> - </note> - <note> - <para> - Seien Sie sich bewusst, dass manche Socket-Implementierungen sehr - sorgfältig benutzt werden müssen. Ein paar grundsätzliche Regeln: - <itemizedlist> - <listitem> - <simpara> - Sie sollten immer versuchen, <function>socket_select</function> - ohne Timeout zu benutzen. Ihr Programm sollte nichts tun, wenn - keine Daten verfügbar sind. Code, der von Zeitbegrenzungen - abhängig ist, ist normalerweise nicht portierbar und schwierig - zu debuggen. - </simpara> - </listitem> - <listitem> - <simpara> - Es sollte kein Socket-Deskriptor in die Arrays eingefügt werden, - wenn Sie nicht vorhaben, die Ergebnisse nach der Ausführung - eines <function>socket_select</function> Funktionsaufrufs zu - prüfen und entsprechend darauf zu reagieren. - Nachdem <function>socket_select</function> beendet ist, müssen - alle Sockets in allen Socket-Arrays geprüft werden. Jeder - Socket, der zum Schreiben zur Verfügung steht, muss beschrieben - werden und aus jedem Socket, der zum Lesen verfügbar ist, muss - gelesen werden. - </simpara> - </listitem> - <listitem> - <simpara> - Bei Schreib/Leseoperationen auf den Sockets in den Arrays müssen - Sie damit rechnen, dass nicht notwendigerweise alle Daten - geschrieben/gelesen werden, die Sie angeben. Seien Sie darauf - vorbereitet, dass Sie möglicherweise nur ein einziges Byte - schreiben/lesen können. - </simpara> - </listitem> - <listitem> - <simpara> - Fast allen Socket-Implementierungen ist gemeinsam, dass sie nur - eine einzige Ausnahme in dem <parameter>except</parameter> - Array auffangen können. Dies ist, wenn ausserordentlich Daten - höherer Priorität empfangen werden. - </simpara> - </listitem> - </itemizedlist> - </para> - </note> - <para> - See also - <function>socket_read</function>, - <function>socket_write</function>, - <function>socket_last_error</function> und - <function>socket_strerror</function>. - </para> - </refsect1> - </refentry> + </programlisting> + </example> + </para> + </refsect1> + + <refsect1 role="notes"> + &reftitle.notes; + <note> + <para> + Seien Sie sich bewusst, dass manche Socket-Implementierungen sehr + sorgfältig benutzt werden müssen. Ein paar grundsätzliche Regeln: + <itemizedlist> + <listitem> + <simpara> + Sie sollten immer versuchen, <function>socket_select</function> ohne + Timeout zu benutzen. Ihr Programm sollte nichts tun, wenn keine Daten + verfügbar sind. Code, der von Zeitbegrenzungen abhängig ist, ist + normalerweise nicht portierbar und schwierig zu debuggen. + </simpara> + </listitem> + <listitem> + <simpara> + Es sollte kein Socket-Deskriptor in die Arrays eingefügt werden, wenn + Sie nicht vorhaben, die Ergebnisse nach der Ausführung von + <function>socket_select</function> zu prüfen und entsprechend darauf zu + reagieren. Nachdem <function>socket_select</function> beendet ist, müssen + alle Sockets in allen Socket-Arrays geprüft werden. Jeder Socket, der + zum Schreiben zur Verfügung steht, muss beschrieben werden und aus jedem + Socket, der zum Lesen verfügbar ist, muss gelesen werden. + </simpara> + </listitem> + <listitem> + <simpara> + Bei Schreib/Leseoperationen auf den Sockets in den Arrays müssen Sie + damit rechnen, dass nicht notwendigerweise alle Daten geschrieben/gelesen + werden, die Sie angeben. Seien Sie darauf vorbereitet, dass Sie + möglicherweise nur ein einziges Byte schreiben/lesen können. + </simpara> + </listitem> + <listitem> + <simpara> + Fast allen Socket-Implementierungen ist gemeinsam, dass sie nur eine + einzige Ausnahme in dem Array <parameter>except</parameter> auffangen + können. Und zwar, wenn bandexterne Daten von einem Socket empfangen + werden. + </simpara> + </listitem> + </itemizedlist> + </para> + </note> + </refsect1> + + <refsect1 role="seealso"> + &reftitle.seealso; + <para> + <simplelist> + <member><function>socket_read</function></member> + <member><function>socket_write</function></member> + <member><function>socket_last_error</function></member> + <member><function>socket_strerror</function></member> + </simplelist> + </para> + </refsect1> + +</refentry> <!-- Keep this comment at the end of the file Local variables:
http://cvs.php.net/viewvc.cgi/phpdoc-de/reference/sockets/functions/socket-getpeername.xml?r1=1.3&r2=1.4&diff_format=u Index: phpdoc-de/reference/sockets/functions/socket-getpeername.xml diff -u phpdoc-de/reference/sockets/functions/socket-getpeername.xml:1.3 phpdoc-de/reference/sockets/functions/socket-getpeername.xml:1.4 --- phpdoc-de/reference/sockets/functions/socket-getpeername.xml:1.3 Sat Jun 23 13:21:49 2007 +++ phpdoc-de/reference/sockets/functions/socket-getpeername.xml Wed Jan 2 22:07:10 2008 @@ -1,67 +1,112 @@ <?xml version="1.0" encoding="iso-8859-1"?> -<!-- $Revision: 1.3 $ --> -<!-- EN-Revision: 1.10 Maintainer: conni Status: ready --> +<!-- $Revision: 1.4 $ --> +<!-- EN-Revision: 1.14 Maintainer: conni Status: ready --> +<refentry xmlns="http://docbook.org/ns/docbook" xml:id="function.socket-getpeername"> + <refnamediv> + <refname>socket_getpeername</refname> + <refpurpose>Fragt das entfernte Ende eines gegebenen Sockets ab. Das Ergebnis ist vom Typ abhängig und ist entweder das Paar host/port oder ein Pfad des Unix-Dateisystems.</refpurpose> + </refnamediv> - <refentry xml:id="function.socket-getpeername" xmlns="http://docbook.org/ns/docbook"> - <refnamediv> - <refname>socket_getpeername</refname> - <refpurpose> - Fragt das entfernte Ende eines gegebenen Sockets ab. Das Ergebnis - ist vom Typ abhängig und ist entweder das Paar host/port oder ein - Pfad des Unix-Dateisystems. - </refpurpose> - </refnamediv> - <refsect1> - <title>Beschreibung</title> - <methodsynopsis> - <type>bool</type><methodname>socket_getpeername</methodname> - <methodparam><type>resource</type><parameter>socket</parameter></methodparam> - <methodparam><type>string</type><parameter role="reference">addr</parameter></methodparam> - <methodparam choice="opt"><type>int</type><parameter role="reference">port</parameter></methodparam> - </methodsynopsis> - - <para> - Falls der angegebene Socket vom Typ <constant>AF_INET</constant> - ist, gibt <function>socket_getpeername</function> die - <emphasis>IP Addresse</emphasis> des entfernten Peers im Parameter - <parameter>address</parameter> in der passenden Notation zurück - (z.B.<literal>127.0.0.1</literal> oder <literal>fe80::1</literal>). - Falls der optionale Parameter<parameter>port</parameter> angegeben - ist, wird der zugehörige Port ebenfalls zurückgegeben. - </para> - <para> - Falls der angegebene Socket vom Typ <constant>AF_UNIX</constant> - ist, gibt <function>socket_getpeername</function> den Pfad des - Unix-Dateisystems (z.B. <literal>/var/run/daemon.sock</literal>) - in dem Parameter <parameter>address</parameter> zurück. - </para> - <note> - <simpara> - <function>socket_getpeername</function> sollte nicht mit - <constant>AF_UNIX</constant>-Sockets verwendet werden, die mit - <function>socket_accept</function> erzeugt wurden. - Nur Sockets, die mit <function>socket_connect</function> erzeugt - wurden oder primäre Server-Sockets, nach einem Aufruf von - <function>socket_bind</function>, geben brauchbare Ergebnisse - zurück. - </simpara> - </note> - <para> - &return.success; <function>socket_getpeername</function> kann - auch &false; zurückgeben, wenn der Socket weder vom Typ - <constant>AF_INET</constant> noch vom Typ <constant>AF_INET6</constant> noch vom Typ - <constant>AF_UNIX</constant> - ist. In diesem Fall wird der letzte Socket-Fehlercode - <emphasis>nicht</emphasis> aktualisiert. - </para> - <para> - Siehe auch - <function>socket_getsockname</function>, - <function>socket_last_error</function> und - <function>socket_strerror</function>. - </para> - </refsect1> - </refentry> + <refsect1 role="description"> + &reftitle.description; + <methodsynopsis> + <type>bool</type><methodname>socket_getpeername</methodname> + <methodparam><type>resource</type><parameter>socket</parameter></methodparam> + <methodparam><type>string</type><parameter role="reference">address</parameter></methodparam> + <methodparam choice="opt"><type>int</type><parameter role="reference">port</parameter></methodparam> + </methodsynopsis> + <para> + Fragt das entfernte Ende eines gegebenen Sockets ab. Das Ergebnis ist vom + Typ abhängig und ist entweder das Paar host/port oder ein Pfad des + Unix-Dateisystems. + </para> + </refsect1> + + <refsect1 role="parameters"> + &reftitle.parameters; + <para> + <variablelist> + <varlistentry> + <term><parameter>socket</parameter></term> + <listitem> + <para> + Ein gültiger Socket-Deskriptor, der von <function>socket_create</function> + oder <function>socket_accept</function> erzeugt wurde. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term><parameter>address</parameter></term> + <listitem> + <para> + Falls der angegebene Socket vom Typ <constant>AF_INET</constant> oder + <constant>AF_INET6</constant> ist, gibt <function>socket_getpeername</function> + die <emphasis>IP Addresse</emphasis> des entfernten Peers im Parameter + <parameter>address</parameter> in der passenden Notation + (z.B.<literal>127.0.0.1</literal> oder <literal>fe80::1</literal>) im + Parameter <parameter>address</parameter> zurück. Falls der optionale + Parameter <parameter>port</parameter> angegeben ist, wird der zugehörige + Port ebenfalls zurückgegeben. + </para> + <para> + Falls der angegebene Socket vom Typ <constant>AF_UNIX</constant> + ist, gibt <function>socket_getpeername</function> den Pfad des + Unix-Dateisystems (z.B. <literal>/var/run/daemon.sock</literal>) + in dem Parameter <parameter>address</parameter> zurück. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term><parameter>port</parameter></term> + <listitem> + <para> + Falls angegeben, wird hier der mit <parameter>address</parameter> + verknüpfte Port zurückgegeben. + </para> + </listitem> + </varlistentry> + </variablelist> + </para> + </refsect1> + + <refsect1 role="returnvalues"> + &reftitle.returnvalues; + <para> + &return.success; <function>socket_getpeername</function> kann aber auch + &false; zurückgeben, falls der Socket weder vom Typ <constant>AF_INET</constant> + noch vom Typ <constant>AF_INET6</constant> oder <constant>AF_UNIX</constant> + ist. In diesem Fall wird der letzte Fehlercode für den Socket + <mphasis>nicht</emphasis> aktualisiert. + </para> + </refsect1> + + <refsect1 role="notes"> + &reftitle.notes; + <note> + <para> + <function>socket_getpeername</function> sollte nicht mit + <constant>AF_UNIX</constant>-Sockets verwendet werden, die mit + <function>socket_accept</function> erzeugt wurden. Nur Sockets, die mit + <function>socket_connect</function> erzeugt wurden oder primäre + Server-Sockets, nach einem Aufruf von <function>socket_bind</function>, + geben brauchbare Ergebnisse zurück. + </para> + </note> + </refsect1> + + <refsect1 role="seealso"> + &reftitle.seealso; + <para> + <simplelist> + <member><function>socket_getsockname</function></member> + <member><function>socket_last_error</function></member> + <member><function>socket_strerror</function></member> + </simplelist> + </para> + </refsect1> + +</refentry> + <!-- Keep this comment at the end of the file Local variables: http://cvs.php.net/viewvc.cgi/phpdoc-de/reference/sockets/functions/socket-getsockname.xml?r1=1.3&r2=1.4&diff_format=u Index: phpdoc-de/reference/sockets/functions/socket-getsockname.xml diff -u phpdoc-de/reference/sockets/functions/socket-getsockname.xml:1.3 phpdoc-de/reference/sockets/functions/socket-getsockname.xml:1.4 --- phpdoc-de/reference/sockets/functions/socket-getsockname.xml:1.3 Sat Jun 23 13:21:49 2007 +++ phpdoc-de/reference/sockets/functions/socket-getsockname.xml Wed Jan 2 22:07:10 2008 @@ -1,63 +1,102 @@ <?xml version="1.0" encoding="iso-8859-1"?> -<!-- $Revision: 1.3 $ --> -<!-- EN-Revision: 1.8 Maintainer: conni Status: ready --> - <refentry xml:id="function.socket-getsockname" xmlns="http://docbook.org/ns/docbook"> - <refnamediv> - <refname>socket_getsockname</refname> - <refpurpose> - Fragt das lokale Ende eines gegebenen Sockets ab. Das Ergebnis - ist vom Typ abhängig und ist entweder das Paar host/port oder ein - Pfad des Unix-Dateisystems. - </refpurpose> - </refnamediv> - <refsect1> - <title>Beschreibung</title> - <methodsynopsis> - <type>bool</type><methodname>socket_getsockname</methodname> - <methodparam><type>resource</type><parameter>socket</parameter></methodparam> - <methodparam><type>string</type><parameter role="reference">addr</parameter></methodparam> - <methodparam choice="opt"><type>int</type><parameter role="reference">port</parameter></methodparam> - </methodsynopsis> - <para> - Falls der angegebene Socket vom Typ <constant>AF_INET</constant> - ist, gibt <function>socket_getsockname</function> die - <emphasis>IP Addresse</emphasis> des lokalen Rechners im Parameter - <parameter>address</parameter> in Punktnotation zurück (z.B. - <literal>127.0.0.1</literal> oder <literal>fe80::1</literal>). Falls der optionale Parameter - <parameter>port</parameter> angegeben ist, - wird der zugehörige Port ebenfalls zurückgegeben. - </para> - <para> - Falls der angegebene Socket vom Typ <constant>AF_UNIX</constant> - ist, gibt <function>socket_getsockname</function> den Pfad des - Unix-Dateisystems (z.B. <literal>/var/run/daemon.sock</literal>) - in dem Parameter <parameter>address</parameter> zurück. - </para> - <note> - <simpara> - <function>socket_getpeername</function> sollte nicht mit - <constant>AF_UNIX</constant>-Sockets verwendet werden, die mit - <function>socket_accept</function> erzeugt wurden. - Nur Sockets, die mit <function>socket_connect</function> erzeugt - wurden oder primäre Server-Sockets, nach einem Aufruf von - <function>socket_bind</function>, geben brauchbare Ergebnisse - zurück. - </simpara> - </note> - <para> - &return.success; <function>socket_getsockname</function> kann - auch &false; zurückgeben, wenn der Socket weder vom Typ - <constant>AF_INET</constant> noch vom Typ <constant>AF_INET6</constant> noch vom Typ <constant>AF_UNIX</constant> ist. - In diesem Fall wird der letzte Socket-Fehlercode <emphasis>nicht</emphasis> aktualisiert. - </para> - <para> - See also - <function>socket_getpeername</function>, - <function>socket_last_error</function> und - <function>socket_strerror</function>. - </para> - </refsect1> - </refentry> +<!-- $Revision: 1.4 $ --> +<!-- EN-Revision: 1.12 Maintainer: conni Status: ready --> +<refentry xmlns="http://docbook.org/ns/docbook" xml:id="function.socket-getsockname"> + <refnamediv> + <refname>socket_getsockname</refname> + <refpurpose>Fragt das lokale Ende eines gegebenen Sockets ab. Das Ergebnis ist vom Typ abhängig und ist entweder das Paar host/port oder ein Pfad des Unix-Dateisystems.</refpurpose> + </refnamediv> + + <refsect1 role="description"> + &reftitle.description; + <methodsynopsis> + <type>bool</type><methodname>socket_getsockname</methodname> + <methodparam><type>resource</type><parameter>socket</parameter></methodparam> + <methodparam><type>string</type><parameter role="reference">addr</parameter></methodparam> + <methodparam choice="opt"><type>int</type><parameter role="reference">port</parameter></methodparam> + </methodsynopsis> + <note> + <simpara> + <function>socket_getpeername</function> sollte nicht mit + <constant>AF_UNIX</constant>-Sockets verwendet werden, die mit + <function>socket_connect</function> erzeugt wurden. Nur Sockets, die mit + <function>socket_accept</function> erzeugt wurden oder primäre + Server-Sockets, nach einem Aufruf von <function>socket_bind</function>, + geben brauchbare Ergebnisse zurück. + </simpara> + </note> + </refsect1> + + <refsect1 role="parameters"> + &reftitle.parameters; + <para> + <variablelist> + <varlistentry> + <term><parameter>socket</parameter></term> + <listitem> + <para> + Ein gültiger Socket-Deskriptor, der von <function>socket_create</function> + oder <function>socket_accept</function> erzeugt wurde. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term><parameter>addr</parameter></term> + <listitem> + <para> + Falls der angegebene Socket vom Typ <constant>AF_INET</constant> + ist, gibt <function>socket_getsockname</function> die + <emphasis>IP Addresse</emphasis> des lokalen Rechners im Parameter + <parameter>address</parameter> in Punktnotation zurück (z.B. + <literal>127.0.0.1</literal> oder <literal>fe80::1</literal>). Falls der + optionale Parameter <parameter>port</parameter> angegeben ist, + wird der zugehörige Port ebenfalls zurückgegeben. + </para> + <para> + Falls der angegebene Socket vom Typ <constant>AF_UNIX</constant> + ist, gibt <function>socket_getsockname</function> den Pfad des + Unix-Dateisystems (z.B. <literal>/var/run/daemon.sock</literal>) + in dem Parameter <parameter>address</parameter> zurück. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term><parameter>port</parameter></term> + <listitem> + <para> + Falls angegeben, wird hier der mit <parameter>address</parameter> + verknüpfte Port zurückgegeben. + </para> + </listitem> + </varlistentry> + </variablelist> + </para> + </refsect1> + + <refsect1 role="returnvalues"> + &reftitle.returnvalues; + <para> + &return.success; <function>socket_getsockname</function> kann auch &false; + zurückgeben, wenn der Socket weder vom Typ <constant>AF_INET</constant> noch + vom Typ <constant>AF_INET6</constant> oder <constant>AF_UNIX</constant> ist. + In diesem Fall wird der letzte Socket-Fehlercode <emphasis>nicht</emphasis> + aktualisiert. + </para> + </refsect1> + + <refsect1 role="seealso"> + &reftitle.seealso; + <para> + <simplelist> + <member><function>socket_getpeername</function></member> + <member><function>socket_last_error</function></member> + <member><function>socket_strerror</function></member> + </simplelist> + </para> + </refsect1> + +</refentry> + <!-- Keep this comment at the end of the file Local variables: http://cvs.php.net/viewvc.cgi/phpdoc-de/reference/sockets/functions/socket-last-error.xml?r1=1.3&r2=1.4&diff_format=u Index: phpdoc-de/reference/sockets/functions/socket-last-error.xml diff -u phpdoc-de/reference/sockets/functions/socket-last-error.xml:1.3 phpdoc-de/reference/sockets/functions/socket-last-error.xml:1.4 --- phpdoc-de/reference/sockets/functions/socket-last-error.xml:1.3 Sat Jun 23 13:21:49 2007 +++ phpdoc-de/reference/sockets/functions/socket-last-error.xml Wed Jan 2 22:07:10 2008 @@ -1,54 +1,90 @@ <?xml version="1.0" encoding="iso-8859-1"?> -<!-- $Revision: 1.3 $ --> -<!-- EN-Revision: 1.7 Maintainer: conni Status: ready --> +<!-- $Revision: 1.4 $ --> +<!-- EN-Revision: 1.12 Maintainer: conni Status: ready --> +<refentry xmlns="http://docbook.org/ns/docbook" xml:id="function.socket-last-error"> + <refnamediv> + <refname>socket_last_error</refname> + <refpurpose>Gibt den letzten Fehler zurück, der an einem Socket aufgetreten ist.</refpurpose> + </refnamediv> - <refentry xml:id="function.socket-last-error" xmlns="http://docbook.org/ns/docbook"> - <refnamediv> - <refname>socket_last_error</refname> - <refpurpose>Gibt den letzten Fehler zurück, der an einem Socket aufgetreten ist. </refpurpose> - </refnamediv> - <refsect1> - <title>Beschreibung</title> - <methodsynopsis> - <type>int</type><methodname>socket_last_error</methodname> - <methodparam choice="opt"><type>resource</type><parameter>socket</parameter></methodparam> - </methodsynopsis> - <para> - Diese Funktion gibt einen Fehlercode für einen Socket zurück. - </para> - <para> - Falls ein Socket-Deskriptor an diese Funktion übergeben wird, wird - der letzte Fehler, der an diesem bestimmten Socket aufgetreten ist, - zurückgegeben. Falls kein Socket-Deskriptor übergeben wird, wird - der Fehlercode der letzten fehlgeschlagenen Socket-Funktion - zurückgegeben. - Letzteres ist besonders hilfreich für Funktionen wie - <function>socket_create</function>, die bei einem Fehler keinen - Socket zurückgibt, und <function>socket_select</function>, die aus - anderen Gründen, die nichts mit einem bestimmten Socket zu tun - haben, fehlschlagen kann. Der Fehlercode kann an die Funktion - <function>socket_strerror</function> übergeben werden, die eine - textuelle Beschreibung dieses Fehlercodes zurückgibt. - <programlisting role="php"> + <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> + Wenn ein Socket-Deskriptor an diese Funktion übergeben wird, wird der letzte + Fehler, der an diesem bestimmten Socket aufgetreten ist, zurückgegeben. + Falls kein Socket-Deskriptor übergeben wird, wird der Fehlercode der letzten + fehlgeschlagenen Socket-Funktion zurückgegeben. Letzteres ist besonders + hilfreich für Funktionen wie <function>socket_create</function>, die bei + einem Fehler keinen Socket zurückgibt, oder <function>socket_select</function>, + die aus anderen Gründen, die nichts mit einem bestimmten Socket zu tun + haben, fehlschlagen kann. Der Fehlercode kann an die Funktion + <function>socket_strerror</function> übergeben werden, die eine textuelle + Beschreibung dieses Fehlercodes zurückgibt. + </para> + </refsect1> + + <refsect1 role="parameters"> + &reftitle.parameters; + <para> + <variablelist> + <varlistentry> + <term><parameter>socket</parameter></term> + <listitem> + <para> + Ein gültiger Socket-Deskriptor, der von <function>socket_create</function> erzeugt wurde. + </para> + </listitem> + </varlistentry> + </variablelist> + </para> + </refsect1> + + <refsect1 role="returnvalues"> + &reftitle.returnvalues; + <para> + Diese Funktion gibt den Fehlercode eines Socket-Fehlers zurück. + </para> + </refsect1> + + <refsect1 role="examples"> + &reftitle.examples; + <para> + <example> + <title><function>socket_last_error</function> example</title> + <programlisting role="php"> <![CDATA[ <?php -if (false == ($socket = @socket_create(AF_INET, SOCK_STREAM, SOL_TCP))) { - die("Konnte keinen Socket erzeugen, der Fehlercode ist: " . socket_last_error() . - ",error message is: " . socket_strerror(socket_last_error())); +$socket = @socket_create(AF_INET, SOCK_STREAM, SOL_TCP); + +if ($socket === false) { + $errorcode = socket_last_error(); + $errormsg = socket_strerror($errorcode); + + die("Konnte keinen Socket erzeugen: [$errorcode] $errormsg"); } ?> ]]> - </programlisting> - </para> - <note> - <para> - <function>socket_last_error</function> löscht den Fehlercode - nicht. Dafür müssen Sie die Funktion - <function>socket_clear_error</function> aufrufen. - </para> - </note> - </refsect1> - </refentry> + </programlisting> + </example> + </para> + </refsect1> + + <refsect1 role="notes"> + &reftitle.notes; + <note> + <para> + <function>socket_last_error</function> löscht den Fehlercode nicht. Dazu + müssesn Sie <function>socket_clear_error</function> aufrufen. + </para> + </note> + </refsect1> + +</refentry> + <!-- Keep this comment at the end of the file Local variables: http://cvs.php.net/viewvc.cgi/phpdoc-de/reference/sockets/functions/socket-listen.xml?r1=1.3&r2=1.4&diff_format=u Index: phpdoc-de/reference/sockets/functions/socket-listen.xml diff -u phpdoc-de/reference/sockets/functions/socket-listen.xml:1.3 phpdoc-de/reference/sockets/functions/socket-listen.xml:1.4 --- phpdoc-de/reference/sockets/functions/socket-listen.xml:1.3 Sat Jun 23 13:21:49 2007 +++ phpdoc-de/reference/sockets/functions/socket-listen.xml Wed Jan 2 22:07:10 2008 @@ -1,71 +1,100 @@ <?xml version="1.0" encoding="iso-8859-1"?> -<!-- $Revision: 1.3 $ --> -<!-- EN-Revision: 1.5 Maintainer: conni Status: ready --> +<!-- $Revision: 1.4 $ --> +<!-- EN-Revision: 1.9 Maintainer: conni Status: ready --> +<refentry xmlns="http://docbook.org/ns/docbook" xml:id="function.socket-listen"> + <refnamediv> + <refname>socket_listen</refname> + <refpurpose>Hört einen Socket nach Verbindungsanforderungen ab</refpurpose> + </refnamediv> - <refentry xml:id="function.socket-listen" xmlns="http://docbook.org/ns/docbook"> - <refnamediv> - <refname>socket_listen</refname> - <refpurpose>Hört einen Socket nach Verbindungsanforderungen ab </refpurpose> - </refnamediv> - <refsect1> - <title>Beschreibung</title> - <methodsynopsis> - <type>bool</type><methodname>socket_listen</methodname> - <methodparam><type>resource</type><parameter>socket</parameter></methodparam> - <methodparam choice="opt"><type>int</type><parameter>backlog</parameter></methodparam> - </methodsynopsis> - <para> - Nachdem der Socket <parameter>socket</parameter> mit - <function>socket_create</function> erzeugt und mit - <function>socket_bind</function> mit einem Namen verknüpft wurde, - wird er angewiesen, nach hereinkommenden Verbindungsanforderungen - an dem Socket <parameter>socket</parameter> zu horchen. - </para> - <para> - Maximal werden <parameter>backlog</parameter> hereinkommende - Verbindungsanforderungen zur späteren Verarbeitung in die - Warteschlange gestellt. Falls eine Verbindungsanforderung ankommt, - wenn die Warteschlange voll ist, bekommt der Client eine - Fehlermeldung mit dem Hinweis <literal>ECONNREFUSED</literal>. - Oder, falls das zugrundeliegende Protokoll eine wiederholte - Übertragung unterstützt, wird die Anforderung ignoriert, so dass - weitere Verbindungsversuche möglicherweise erfolgreich sind. - </para> - <note> - <para> - Die maximale Anzahl, der im Parameter <parameter>backlog</parameter> - angegebenen Einträge der Warteschlange, hängt entscheidend vom - darunterliegenden Betriebssystem ab. Auf Linux-Systemen wird die - Zahl stillschweigend auf <constant>SOMAXCONN</constant> begrenzt. - Wenn auf Win32-Systemen <constant>SOMAXCONN</constant> gesetzt - ist, ist der Dienstanbieter verantwortlich für den Socket und muss - die Warteschlange auf einen <emphasis>vernünftigen</emphasis> - Maximalwert begrenzen. Es gibt für diese Systeme keine - standardmässige Möglichkeit, den aktuellen Wert herauszufinden. - </para> - </note> - <para> - <function>socket_listen</function> kann nur mit Sockets vom Typ - <constant>SOCK_STREAM</constant> oder - <constant>SOCK_SEQPACKET</constant> benutzt werden. - </para> - <para> - &return.success; Der Fehlercode kann mit der Funktion - <function>socket_last_error</function> abgefragt werden. Dieser - Fehlercode kann an die Funktion <function>socket_strerror</function> - übergeben werden, um eine textuelle Beschreibung des Fehlers zu - erhalten. - </para> - <para> - Siehe auch - <function>socket_accept</function>, - <function>socket_bind</function>, - <function>socket_connect</function>, - <function>socket_create</function> und - <function>socket_strerror</function>. - </para> - </refsect1> - </refentry> + <refsect1 role="description"> + &reftitle.description; + <methodsynopsis> + <type>bool</type><methodname>socket_listen</methodname> + <methodparam><type>resource</type><parameter>socket</parameter></methodparam> + <methodparam choice="opt"><type>int</type><parameter>backlog</parameter></methodparam> + </methodsynopsis> + <para> + Nachdem der Socket <parameter>socket</parameter> mit <function>socket_create</function> + erzeugt und mit <function>socket_bind</function> mit einem Namen verknüpft + wurde, wird er angewiesen, nach hereinkommenden Verbindungsanforderungen + an dem Socket <parameter>socket</parameter> zu horchen. + </para> + <para> + <function>socket_listen</function> kann nur zusammen mit Sockets vom Typ + <constant>SOCK_STREAM</constant> oder <constant>SOCK_SEQPACKET</constant> + verwendet werden. + </para> + </refsect1> + + <refsect1 role="parameters"> + &reftitle.parameters; + <para> + <variablelist> + <varlistentry> + <term><parameter>socket</parameter></term> + <listitem> + <para> + Ein gültiger Socket-Deskriptor, der von <function>socket_create</function> erzeugt wurde. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term><parameter>backlog</parameter></term> + <listitem> + <para> + Maximal werden <parameter>backlog</parameter> hereinkommende + Verbindungsanforderungen zur späteren Verarbeitung in die + Warteschlange gestellt. Falls eine Verbindungsanforderung ankommt, + wenn die Warteschlange voll ist, bekommt der Client eine + Fehlermeldung mit dem Hinweis <literal>ECONNREFUSED</literal>. + Oder, falls das zugrundeliegende Protokoll eine wiederholte + Übertragung unterstützt, wird die Anforderung ignoriert, so dass + weitere Verbindungsversuche möglicherweise erfolgreich sind. + </para> + <note> + <para> + Die maximale Anzahl, der im Parameter <parameter>backlog</parameter> + angegebenen Einträge der Warteschlange, hängt entscheidend vom + darunterliegenden Betriebssystem ab. Auf Linux-Systemen wird die + Zahl stillschweigend auf <constant>SOMAXCONN</constant> begrenzt. + Wenn auf Win32-Systemen <constant>SOMAXCONN</constant> gesetzt + ist, ist der Dienstanbieter verantwortlich für den Socket und muss + die Warteschlange auf einen <emphasis>vernünftigen</emphasis> + Maximalwert begrenzen. Es gibt für diese Systeme keine + standardmässige Möglichkeit, den aktuellen Wert herauszufinden. + </para> + </note> + </listitem> + </varlistentry> + </variablelist> + </para> + </refsect1> + + <refsect1 role="returnvalues"> + &reftitle.returnvalues; + <para> + &return.success; Der Fehlercode kann mit der Funktion + <function>socket_last_error</function> abgefragt werden. Dieser + Fehlercode kann an die Funktion <function>socket_strerror</function> + übergeben werden, um eine textuelle Beschreibung des Fehlers zu erhalten. + </para> + </refsect1> + + <refsect1 role="seealso"> + &reftitle.seealso; + <para> + <simplelist> + <member><function>socket_accept</function></member> + <member><function>socket_bind</function></member> + <member><function>socket_connect</function></member> + <member><function>socket_create</function></member> + <member><function>socket_strerror</function></member> + </simplelist> + </para> + </refsect1> + +</refentry> <!-- Keep this comment at the end of the file Local variables: http://cvs.php.net/viewvc.cgi/phpdoc-de/reference/sockets/functions/socket-read.xml?r1=1.3&r2=1.4&diff_format=u Index: phpdoc-de/reference/sockets/functions/socket-read.xml diff -u phpdoc-de/reference/sockets/functions/socket-read.xml:1.3 phpdoc-de/reference/sockets/functions/socket-read.xml:1.4 --- phpdoc-de/reference/sockets/functions/socket-read.xml:1.3 Sat Jun 23 13:21:49 2007 +++ phpdoc-de/reference/sockets/functions/socket-read.xml Wed Jan 2 22:07:10 2008 @@ -1,73 +1,138 @@ <?xml version="1.0" encoding="iso-8859-1"?> -<!-- $Revision: 1.3 $ --> -<!-- EN-Revision: 1.6 Maintainer: conni Status: ready --> +<!-- $Revision: 1.4 $ --> +<!-- EN-Revision: 1.10 Maintainer: conni Status: ready --> +<refentry xmlns="http://docbook.org/ns/docbook" xml:id="function.socket-read"> + <refnamediv> + <refname>socket_read</refname> + <refpurpose>Liest höchstens die angegebene Anzahl Bytes von einem Socket.</refpurpose> + </refnamediv> - <refentry xml:id="function.socket-read" xmlns="http://docbook.org/ns/docbook"> - <refnamediv> - <refname>socket_read</refname> - <refpurpose>Liest höchstens die angegebene Anzahl Bytes von einem Socket. </refpurpose> - </refnamediv> - <refsect1> - <title>Beschreibung</title> - <methodsynopsis> - <type>string</type><methodname>socket_read</methodname> - <methodparam><type>resource</type><parameter>socket</parameter></methodparam> - <methodparam><type>int</type><parameter>length</parameter></methodparam> - <methodparam choice="opt"><type>int</type><parameter>type</parameter></methodparam> - </methodsynopsis> - - <para> - Die Funktion <function>socket_read</function> liest von dem Socket - <parameter>socket</parameter>, der entweder mit - <function>socket_create</function> oder mit - <function>socket_accept</function> erzeugt wurde. Die Anzahl - Bytes, die höchstens gelesen wird, wird in dem Parameter - <parameter>length</parameter> angegeben. Anderenfalls können Sie mit - \r, \n, or \0 den Lesevorgang beenden (dies ist abhängig von dem - Parameter <parameter>type</parameter>, siehe weiter unten). - </para> - <para> - <function>socket_read</function> gibt bei Erfolg die Daten als String - zurück oder &false;, falls ein Fehler aufgetreten ist (oder auch, - wenn der entfernte Socket die Verbindung abgebrochen hat). Der - Fehlercode kann mit der Funktion <function>socket_last_error</function> - abgefragt werden. Dieser Fehlercode kann an die Funktion - <function>socket_strerror</function> übergeben werden, um eine - textuelle Beschreibung des Fehlers zu erhalten. - </para> - <note> - <para> - <function>socket_read</function> kann auch einen leeren String - zurückgeben (""), wenn es keine Daten mehr zu lesen gibt. - </para> - </note> - <para> - Der optionale Parameter <parameter>type</parameter> ist eine vordefinierte Konstante: - <itemizedlist> - <listitem> - <simpara> - PHP_BINARY_READ - benutzt die <literal>read()</literal> Funktion des Systems. Sicher Zum Lesen von Binärdaten (und Standardeinstellung in PHP >= 4.1.0). - </simpara> - </listitem> - <listitem> - <simpara> - PHP_NORMAL_READ - Der Lesevorgang wird mit \n oder \r beendet. (Standardeinstellung in PHP <= 4.0.6) - </simpara> - </listitem> - </itemizedlist> - </para> - <para> - See also - <function>socket_accept</function>, - <function>socket_bind</function>, - <function>socket_connect</function>, - <function>socket_listen</function>, - <function>socket_last_error</function>, - <function>socket_strerror</function> und - <function>socket_write</function>. - </para> - </refsect1> - </refentry> + <refsect1 role="description"> + &reftitle.description; + <methodsynopsis> + <type>string</type><methodname>socket_read</methodname> + <methodparam><type>resource</type><parameter>socket</parameter></methodparam> + <methodparam><type>int</type><parameter>length</parameter></methodparam> + <methodparam choice="opt"><type>int</type><parameter>type</parameter></methodparam> + </methodsynopsis> + <para> + Die Funktion <function>socket_read</function> liest von dem Socket + <parameter>socket</parameter>, der entweder mit <function>socket_create</function> + oder mit <function>socket_accept</function> erzeugt wurde. + </para> + </refsect1> + + <refsect1 role="parameters"> + &reftitle.parameters; + <para> + <variablelist> + <varlistentry> + <term><parameter>socket</parameter></term> + <listitem> + <para> + Ein gültiger Socket-Deskriptor, der von <function>socket_create</function> + oder <function>socket_accept</function> erzeugt wurde. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term><parameter>length</parameter></term> + <listitem> + <para> + Die Anzahl Bytes, die höchstens gelesen wird, wird in dem Parameter + <parameter>length</parameter> angegeben. Anderenfalls können Sie mit + \r, \n, oder \0 den Lesevorgang beenden (dies ist abhängig von dem + Parameter <parameter>type</parameter>, siehe weiter unten). + </para> + </listitem> + </varlistentry> + <varlistentry> + <term><parameter>type</parameter></term> + <listitem> + <para> + Der optionale Parameter <parameter>type</parameter> ist eine + vordefinierte Konstante: + <itemizedlist> + <listitem> + <simpara> + <constant>PHP_BINARY_READ</constant> (Standardwert) - benutzt die + Systemfunktion <literal>recv()</literal>. Das ist sicher zum Lesen + von Binärdaten. + </simpara> + </listitem> + <listitem> + <simpara> + <constant>PHP_NORMAL_READ</constant> - Lesevorgänge werden bei \n oder \r beendet. + </simpara> + </listitem> + </itemizedlist> + </para> + </listitem> + </varlistentry> + </variablelist> + </para> + </refsect1> + + <refsect1 role="returnvalues"> + &reftitle.returnvalues; + <para> + <function>socket_read</function> gibt bei Erfolg die Daten als String + zurück oder &false;, falls ein Fehler aufgetreten ist (oder auch, wenn der + entfernte Host die Verbindung abgebrochen hat). Der Fehlercode kann mit + <function>socket_last_error</function> abgefragt werden. Dieser Fehlercode + kann an die Funktion <function>socket_strerror</function> übergeben werden, + um eine textuelle Beschreibung des Fehlers zu erhalten. + </para> + <note> + <para> + <function>socket_read</function> gibt einen leeren String ("") zurück, wenn + es keine Daten mehr zu lesen gibt. + </para> + </note> + </refsect1> + + <refsect1 role="changelog"> + &reftitle.changelog; + <para> + <informaltable> + <tgroup cols="2"> + <thead> + <row> + <entry>&Version;</entry> + <entry>&Description;</entry> + </row> + </thead> + <tbody> + <row> + <entry>4.1.0</entry> + <entry> + Der Vorgabewert für <parameter>type</parameter> wurde von + <constant>PHP_NORMAL_READ</constant> auf + <constant>PHP_BINARY_READ</constant> gesetzt. + </entry> + </row> + </tbody> + </tgroup> + </informaltable> + </para> + </refsect1> + + <refsect1 role="seealso"> + &reftitle.seealso; + <para> + <simplelist> + <member><function>socket_accept</function></member> + <member><function>socket_bind</function></member> + <member><function>socket_connect</function></member> + <member><function>socket_listen</function></member> + <member><function>socket_last_error</function></member> + <member><function>socket_strerror</function></member> + <member><function>socket_write</function></member> + </simplelist> + </para> + </refsect1> + +</refentry> <!-- Keep this comment at the end of the file Local variables: http://cvs.php.net/viewvc.cgi/phpdoc-de/reference/sockets/functions/socket-recv.xml?r1=1.3&r2=1.4&diff_format=u Index: phpdoc-de/reference/sockets/functions/socket-recv.xml diff -u phpdoc-de/reference/sockets/functions/socket-recv.xml:1.3 phpdoc-de/reference/sockets/functions/socket-recv.xml:1.4 --- phpdoc-de/reference/sockets/functions/socket-recv.xml:1.3 Sat Jun 23 13:21:49 2007 +++ phpdoc-de/reference/sockets/functions/socket-recv.xml Wed Jan 2 22:07:10 2008 @@ -1,25 +1,27 @@ <?xml version="1.0" encoding="iso-8859-1"?> -<!-- $Revision: 1.3 $ --> -<!-- EN-Revision: 1.6 Maintainer: conni Status: ready --> +<!-- $Revision: 1.4 $ --> +<!-- EN-Revision: 1.9 Maintainer: conni Status: ready --> +<refentry xmlns="http://docbook.org/ns/docbook" xml:id="function.socket-recv"> + <refnamediv> + <refname>socket_recv</refname> + <refpurpose>Empfängt Daten von einem verbundenen Socket</refpurpose> + </refnamediv> + + <refsect1 role="description"> + &reftitle.description; + <methodsynopsis> + <type>int</type><methodname>socket_recv</methodname> + <methodparam><type>resource</type><parameter>socket</parameter></methodparam> + <methodparam><type>string</type><parameter role="reference">buf</parameter></methodparam> + <methodparam><type>int</type><parameter>len</parameter></methodparam> + <methodparam><type>int</type><parameter>flags</parameter></methodparam> + </methodsynopsis> + <para> + &warn.undocumented.func; + </para> + </refsect1> - <refentry xml:id="function.socket-recv" xmlns="http://docbook.org/ns/docbook"> - <refnamediv> - <refname>socket_recv</refname> - <refpurpose>Empfängt Daten von einem verbundenen Socket </refpurpose> - </refnamediv> - <refsect1> - <title>Beschreibung</title> - <methodsynopsis> - <type>int</type><methodname>socket_recv</methodname> - <methodparam><type>resource</type><parameter>socket</parameter></methodparam> - <methodparam><type>string</type><parameter role="reference">buf</parameter></methodparam> - <methodparam><type>int</type><parameter>len</parameter></methodparam> <methodparam><type>int</type><parameter>flags</parameter></methodparam> - </methodsynopsis> - <para> - &warn.undocumented.func; - </para> - </refsect1> - </refentry> +</refentry> <!-- Keep this comment at the end of the file Local variables: http://cvs.php.net/viewvc.cgi/phpdoc-de/reference/sockets/functions/socket-recvfrom.xml?r1=1.3&r2=1.4&diff_format=u Index: phpdoc-de/reference/sockets/functions/socket-recvfrom.xml diff -u phpdoc-de/reference/sockets/functions/socket-recvfrom.xml:1.3 phpdoc-de/reference/sockets/functions/socket-recvfrom.xml:1.4 --- phpdoc-de/reference/sockets/functions/socket-recvfrom.xml:1.3 Sat Jun 23 13:21:49 2007 +++ phpdoc-de/reference/sockets/functions/socket-recvfrom.xml Wed Jan 2 22:07:10 2008 @@ -1,28 +1,236 @@ <?xml version="1.0" encoding="iso-8859-1"?> -<!-- $Revision: 1.3 $ --> -<!-- EN-Revision: 1.7 Maintainer: conni Status: ready --> +<!-- $Revision: 1.4 $ --> +<!-- EN-Revision: 1.13 Maintainer: conni Status: ready --> +<refentry xmlns="http://docbook.org/ns/docbook" xml:id="function.socket-recvfrom"> + <refnamediv> + <refname>socket_recvfrom</refname> + <refpurpose>Empfängt Daten von einem Socket, egal, ob verbindungsorientiert oder nicht</refpurpose> + </refnamediv> - <refentry xml:id="function.socket-recvfrom" xmlns="http://docbook.org/ns/docbook"> - <refnamediv> - <refname>socket_recvfrom</refname> - <refpurpose>Empfängt Daten von einem Socket, unabhängig von einer Verbindung </refpurpose> - </refnamediv> - <refsect1> - <title>Beschreibung</title> - <methodsynopsis> - <type>int</type><methodname>socket_recvfrom</methodname> - <methodparam><type>resource</type><parameter>socket</parameter></methodparam> - <methodparam><type>string</type><parameter role="reference">buf</parameter></methodparam> - <methodparam><type>int</type><parameter>len</parameter></methodparam> - <methodparam><type>int</type><parameter>flags</parameter></methodparam> - <methodparam><type>string</type><parameter role="reference">name</parameter></methodparam> - <methodparam choice="opt"><type>int</type><parameter role="reference">port</parameter></methodparam> - </methodsynopsis> + <refsect1 role="description"> + &reftitle.description; + <methodsynopsis> + <type>int</type><methodname>socket_recvfrom</methodname> + <methodparam><type>resource</type><parameter>socket</parameter></methodparam> + <methodparam><type>string</type><parameter role="reference">buf</parameter></methodparam> + <methodparam><type>int</type><parameter>len</parameter></methodparam> + <methodparam><type>int</type><parameter>flags</parameter></methodparam> + <methodparam><type>string</type><parameter role="reference">name</parameter></methodparam> + <methodparam choice="opt"><type>int</type><parameter role="reference">port</parameter></methodparam> + </methodsynopsis> + <para> + Die Funktion <function>socket_recvfrom</function> empfängt über den Socket + <parameter>socket</parameter> <parameter>len</parameter> Bytes von + <parameter>name</parameter> über den Port <parameter>port</parameter> (falls + der Socket nicht vom Typ <constant>AF_UNIX</constant> ist) und liest sie in + den Puffer <parameter>buf</parameter> ein. + <function>socket_recvfrom</function> kann dazu verwendet werden, um Daten + sowohl von verbundenen als auch unverbundenen Sockets zu lesen. Außerdem + können ein oder mehrere Flags gesetzt werden, um das Verhalten dieser + Funktion zu beeinflussen. + </para> + <para> + Die Parameter <parameter>name</parameter> und <parameter>port</parameter> + müsssen als Referenz übergeben werden. Wenn der Socket verbindungslos ist, + wird <parameter>name</parameter> auf die Internet-Protokolladresse des + entfernten Host oder auf den Pfad zum UNIX-Socket gesetzt. Ist der Socket + verbindungsorientiert, ist <parameter>name</parameter> &null;. Zusätzlich + enthält der Parameter <parameter>port</parameter> den Port des entfernten + Host, falls es sich um einen nicht verbundenen <constant>AF_INET</constant> + oder <constant>AF_INET6</constant> Socket handelt. + </para> + </refsect1> + + <refsect1 role="parameters"> + &reftitle.parameters; + <para> + <variablelist> + <varlistentry> + <term><parameter>socket</parameter></term> + <listitem> + <para> + <parameter>socket</parameter> muss ein Socket-Deskriptor sein, der zuvor + von <function>socket_create</function> erzeugt wurde. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term><parameter>buf</parameter></term> + <listitem> + <para> + Die empfangenen Daten werden in die Variable <parameter>buf</parameter> + eingelesen. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term><parameter>len</parameter></term> + <listitem> + <para> + Bis zu <parameter>len</parameter> Bytes werden vom entfernten Host gelesen. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term><parameter>flags</parameter></term> + <listitem> + <para> + Der Wert von <parameter>flags</parameter> kann eine beliebige Kombination + der folgenden Flags sein, die mit dem binären OR (<literal>|</literal>) + verknüpft werden. + </para> + + <table> + <title>Mögliche Werte für <parameter>flags</parameter></title> + <tgroup cols="2"> + <thead> + <row> + <entry>Flag</entry> + <entry>Beschreibung</entry> + </row> + </thead> + <tbody> + <row> + <entry><constant>MSG_OOB</constant></entry> + <entry> + Verarbeite bandexterne Daten. + </entry> + </row> + <row> + <entry><constant>MSG_PEEK</constant></entry> + <entry> + Lies Daten ab Anfang der Empfangs-Warteschlange, ohne die Daten + aus der Warteschlange zu löschen. + </entry> + </row> + <row> + <entry><constant>MSG_WAITALL</constant></entry> + <entry> + Blockiere so lange, bis mindestens <parameter>len</parameter> Daten + gelesen wurden. Wenn jedoch ein Signal empfangen wurde oder der + entfernte Host die Verbindung beendet, kann die Funktion auch weniger + Daten zurückgeben. + </entry> + </row> + <row> + <entry><constant>MSG_DONTWAIT</constant></entry> + <entry> + Wenn dieses Flag gesetzt ist, kehrt die Funktion zurück, auch wenn + sie normalerweise blockieren würde. + </entry> + </row> + </tbody> + </tgroup> + </table> + </listitem> + </varlistentry> + + <varlistentry> + <term><parameter>name</parameter></term> + <listitem> + <para> + Wenn der Socket vom Typ <constant>AF_UNIX</constant> ist, enthält + <parameter>name</parameter> den Pfad zu einer Datei. Anderenfalls, bei + nicht verbundenen Sockets, enthält <parameter>name</parameter> die + IP-Adresse des entfernten Hosts oder &null;, falls der Socket + verbindungsorientiert ist. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term><parameter>port</parameter></term> + <listitem> + <para> + Dieses Argument gilt nur für Sockets vom Typ <constant>AF_INET</constant> und <constant>AF_INET6</constant> und gibt den entfernten Port an, über den Daten empfangen werden. Falls der Socket verbindungsorientiert ist, ist <parameter>port</parameter> &null;. + </para> + </listitem> + </varlistentry> + + </variablelist> + </para> + </refsect1> + + <refsect1 role="returnvalues"> + &reftitle.returnvalues; + <para> + <function>socket_recvfrom</function> gibt die Anzahl der empfangenen Bytes + zurück oder -1, falls ein Fehler auftrat. Der aktuelle Fehlercode kann mit + <function>socket_last_error</function> abgefragt werden. Dieser Fehlercode + kann an die Funktion <function>socket_strerror</function> übergeben werden, + um eine textuelle Beschreibung des Fehlers zu erhalten. + </para> + </refsect1> + + <refsect1 role="examples"> + &reftitle.examples; + <para> + <example> + <title><function>socket_recvfrom</function> Beispiel</title> + <programlisting role="php"> +<![CDATA[ +<?php +error_reporting(E_ALL | E_STRICT); + +$socket = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP); +socket_bind($socket, '127.0.0.1', 1223); + +$from = ""; +$port = 0; +socket_recvfrom($socket, $buf, 12, 0, $from, $port); + +echo "$buf von entfernter Adresse $from über den entfernten Port $port empfangen." . PHP_EOL; +?> +]]> + </programlisting> <para> - &warn.undocumented.func; + Dieses Beispiel erzeugt einen UDP-Socket über Port 1223 des Hosts 127.0.0.1 + und gibt höchstens 12 Zeichen aus, die von einem entfernten Host empfangen + wurden. </para> - </refsect1> - </refentry> + </example> + </para> + </refsect1> + + <refsect1 role="changelog"> + &reftitle.changelog; + <para> + <informaltable> + <tgroup cols="2"> + <thead> + <row> + <entry>&Version;</entry> + <entry>&Description;</entry> + </row> + </thead> + <tbody> + <row> + <entry>4.3.0</entry> + <entry> + <function>socket_recvfrom</function> ist ab jetzt binary-safe. + </entry> + </row> + </tbody> + </tgroup> + </informaltable> + </para> + </refsect1> + + <refsect1 role="seealso"> + &reftitle.seealso; + <para> + <simplelist> + <member><function>socket_recv</function></member> + <member><function>socket_send</function></member> + <member><function>socket_sendto</function></member> + <member><function>socket_create</function></member> + </simplelist> + </para> + </refsect1> +</refentry> <!-- Keep this comment at the end of the file Local variables: http://cvs.php.net/viewvc.cgi/phpdoc-de/reference/sockets/functions/socket-select.xml?r1=1.3&r2=1.4&diff_format=u Index: phpdoc-de/reference/sockets/functions/socket-select.xml diff -u phpdoc-de/reference/sockets/functions/socket-select.xml:1.3 phpdoc-de/reference/sockets/functions/socket-select.xml:1.4 --- phpdoc-de/reference/sockets/functions/socket-select.xml:1.3 Sat Jun 23 13:21:49 2007 +++ phpdoc-de/reference/sockets/functions/socket-select.xml Wed Jan 2 22:07:10 2008 @@ -1,200 +1,247 @@ <?xml version="1.0" encoding="iso-8859-1"?> -<!-- $Revision: 1.3 $ --> -<!-- EN-Revision: 1.13 Maintainer: conni Status: ready --> +<!-- $Revision: 1.4 $ --> +<!-- EN-Revision: 1.17 Maintainer: conni Status: ready --> +<refentry xmlns="http://docbook.org/ns/docbook" xml:id="function.socket-select"> + <refnamediv> + <refname>socket_select</refname> + <refpurpose>Führt einen select() Systemaufruf auf den gegebenen Socket-Arrays aus wobei ein Zeitlimit bestimmt wird</refpurpose> + </refnamediv> - <refentry xml:id="function.socket-select" xmlns="http://docbook.org/ns/docbook"> - <refnamediv> - <refname>socket_select</refname> - <refpurpose>Führt einen select() Systemaufruf auf den gegebenen - Socket-Arrays aus, wobei mit tv_sec und tv_usec ein Zeitlimit - bestimmt wird. </refpurpose> - </refnamediv> - <refsect1> - <title>Beschreibung</title> - <methodsynopsis> - <type>int</type><methodname>socket_select</methodname> - <methodparam><type>array</type><parameter role="reference">read</parameter></methodparam> - <methodparam><type>array</type><parameter role="reference">write</parameter></methodparam> - <methodparam><type>array</type><parameter role="reference">except</parameter></methodparam> - <methodparam><type>int</type><parameter>tv_sec</parameter></methodparam> - <methodparam choice="opt"><type>int</type><parameter>tv_usec</parameter></methodparam> - </methodsynopsis> - <para> - Die Funktion <function>socket_select</function> nimmt als Parameter - Socket-Arrays entgegen und wartet, ob diese ihren Status ändern. - Diejenigen, die Hintergrundwissen über BSD Sockets haben, werden - feststellen, dass diese Socket-Arrays in Wirklichkeit die so - genannten Datei-Deskriptor-Mengen sind. Drei, voneinander - unabhängige Arrays mit Socket-Deskriptoren werden überwacht. - </para> - <para> - Die Sockets, die im <parameter>read</parameter> Array aufgelistet - sind, werden daraufhin überwacht, ob Zeichen zum Auslesen an den - Sockets verfügbar sind (um genauer zu sein: es wird überwacht, ob - das Auslesen den Socket blockiert - besonders aber, ob ein Socket - bereit ist, wenn er zu Ende gelesen hat. In diesem Fall gibt ein - <function>socket_read</function> einen leeren String zurück.) - </para> - <para> - Die Sockets, die im <parameter>write</parameter> Array aufgelistet - sind, werden daraufhin überwacht, ob ein Schreibvorgang den Socket - blockiert. - </para> - <para> - Die Sockets, die im <parameter>except</parameter> Array aufgelistet - sind, werden auf Ausnahmen überwacht. - </para> - <warning> - <para> - Beim Beenden werden alle Arrays aktualisiert, und zeigen an, welche - Sockets ihren Status geändert haben. - </para> - </warning> - <para> - Sie brauchen nicht jedes Array einzeln an - <function>socket_select</function> übergeben. Sie können leere - Arrays oder &null; stattdessen angeben. Vergessen Sie nicht, dass - diese Arrays <emphasis>by reference</emphasis> übergeben werden - müssen und dass sie verändert werden, nachdem die Funktion - <function>socket_select</function> beendet ist. - </para> - <para> - <example> - <title><function>socket_select</function> Beispiel</title> - <programlisting role="php"> + <refsect1 role="description"> + &reftitle.description; + <methodsynopsis> + <type>int</type><methodname>socket_select</methodname> + <methodparam><type>array</type><parameter role="reference">read</parameter></methodparam> + <methodparam><type>array</type><parameter role="reference">write</parameter></methodparam> + <methodparam><type>array</type><parameter role="reference">except</parameter></methodparam> + <methodparam><type>int</type><parameter>tv_sec</parameter></methodparam> + <methodparam choice="opt"><type>int</type><parameter>tv_usec</parameter></methodparam> + </methodsynopsis> + <para> + <function>socket_select</function> nimmt als Parameter Socket-Arrays entgegen + und wartet, ob diese ihren Status ändern. Diejenigen, die Hintergrundwissen + über BSD Sockets haben, werden feststellen, dass diese Socket-Arrays in + Wirklichkeit die so genannten Datei-Deskriptor-Mengen sind. Drei, voneinander + unabhängige Arrays mit Socket-Deskriptoren werden überwacht. + </para> + </refsect1> + + <refsect1 role="parameters"> + &reftitle.parameters; + <para> + <variablelist> + <varlistentry> + <term><parameter>read</parameter></term> + <listitem> + <para> + Die Sockets, die im <parameter>read</parameter> Array aufgelistet sind, + werden daraufhin überwacht, ob Zeichen zum Auslesen zur Verfügung + gestellt werden (um genauer zu sein: es wird überwacht, ob ein + Lesevorgang blockiert - ein Socket ist nämlich auch dann bereit, wenn er + bis zum Dateiende gelesen hat. In diesem Fall gibt + <function>socket_read</function> einen leeren String zurück.) + </para> + </listitem> + </varlistentry> + <varlistentry> + <term><parameter>write</parameter></term> + <listitem> + <para> + Die Sockets, die im <parameter>write</parameter> Array aufgelistet + sind, werden daraufhin überwacht, ob ein Schreibvorgang blockiert. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term><parameter>except</parameter></term> + <listitem> + <para> + Die Sockets, die im <parameter>except</parameter> Array aufgelistet + sind, werden auf Ausnahmen überwacht. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term><parameter>tv_sec</parameter></term> + <listitem> + <para> + <parameter>tv_sec</parameter> und <parameter>tv_usec</parameter> + bilden zusammen den <emphasis>timeout</emphasis> Parameter. Der + <emphasis>timeout</emphasis> ist eine obere Schranke für die Zeit, die + verstreichen kann, bis <function>socket_select</function> zurückkehrt. + <parameter>tv_sec</parameter> kann 0 sein, wodurch + <function>socket_select</function> sofort zurückkehrt. Dies ist + nützlich beim Polling. Falls der Parameter <parameter>tv_sec</parameter> + &null; ist (kein Timeout), kann <function>socket_select</function> + unendlich lange blockieren. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term><parameter>tv_usec</parameter></term> + <listitem> + <para> + </para> + </listitem> + </varlistentry> + </variablelist> + </para> + <warning> + <para> + Beim Beenden werden alle Arrays aktualisiert, und zeigen an, welche + Sockets ihren Status geändert haben. + </para> + </warning> + <para> + Sie brauchen nicht jedes Array einzeln an <function>socket_select</function> + übergeben. Sie können die Arrays auch weglassen und stattdessen leere + Arrays oder &null; angeben. Vergessen Sie nicht, dass diese Arrays + <emphasis>by reference</emphasis> übergeben werden müssen und dass sie + verändert werden, nachdem die Funktion <function>socket_select</function> + beendet ist. + </para> + <note> + <para> + Wegen einer Einschränkung in der aktuellen Zend Engine ist es nicht möglich, + eine Konstante, wie etwa &null;, direkt als Parameter an Funktionen zu + übergeben, die ihre Argumente als Referenzen erwarten. Sie können + stattdessen eine temporäre Variable oder einen Ausdruck, in dem der am + weitesten links stehende Teilausdruck eine temporäre Variable ist, benutzen. + <example> + <title>&null; mit <function>socket_select</function> benutzen:</title> + <programlisting role="php"> <![CDATA[ <?php -/* Das Array zum Lesen vorbereiten */ -$read = array($socket1, $socket2); - -$num_changed_sockets = socket_select($read, $write = NULL, $except = NULL, 0); - -if ($num_changed_sockets === false) { - /* Fehlerbehandlung */ -} else if ($num_changed_sockets > 0) { - /* Mindestes an einem Socket ist etwas interessantes passiert */ -} +$e = NULL; +socket_select($r, $w, $e, 0); ?> ]]> - </programlisting> - </example> - </para> - <note> - <para> - Wegen einer Einschränkung in der aktuellen Zend Engine ist es nicht - möglich, eine Konstante, wie etwa &null;, direkt als Parameter an - Funktionen zu übergeben, die Referenzen auf Parameter als Argumente - erwarten. Sie können stattdessen eine temporäre Variable oder einen - Ausdruck, in dem der am weitesten links stehende Teilausdruck eine - temporäre Variable ist, benutzen. - <example> - <title>&null; mit <function>socket_select</function> benutzen</title> - <programlisting role="php"> + </programlisting> + </example> + </para> + </note> + </refsect1> + + <refsect1 role="returnvalues"> + &reftitle.returnvalues; + <para> + Bei Erfolg gibt <function>socket_select</function> die Anzahl der + Socket-Deskriptoren zurück, die in den aktualisierten Arrays enthalten sind. + Falls der Timeout wirksam wird, bevor irgend etwas Interessantes passiert, + ist das Funktionsergebnis 0. Falls ein Fehler auftritt wird &false; + zurückgegeben. Der Fehlercode kann dann mit + <function>socket_last_error</function> abgefragt werden. + </para> + <note> + <para> + Wenn Sie einen Fehler aufspüren wollen, müssen Sie unbedingt den + Operator <literal>===</literal> benutzen. Weil + <function>socket_select</function> auch 0 zurückgeben kann, wird der + Vergleich mit <literal>==</literal> sonst zu &true; ausgewertet. + <example> + <title>Rückgaben von <function>socket_select</function> verstehen</title> + <programlisting role="php"> <![CDATA[ <?php -socket_select($r, $w, $e = NULL, 0); +$e = NULL; +if (false === socket_select($r, $w, $e, 0)) { + echo "socket_select() fehlgeschlagen, Grund: " . + socket_strerror(socket_last_error()) . "\n"; +} ?> ]]> - </programlisting> - </example> - </para> - </note> - <para> - <parameter>tv_sec</parameter> und <parameter>tv_usec</parameter> - bilden zusammen den <emphasis>timeout</emphasis> Parameter. Der - <emphasis>timeout</emphasis> ist nach oben durch die verstrichene - Zeit, bis <function>socket_select</function> zurückkehrt, begrenzt. - <parameter>tv_sec</parameter> kann 0 sein, wodurch - <function>socket_select</function> sofort zurückkehrt. Dies ist - nützlich beim Polling. Falls der Parameter - <parameter>tv_sec</parameter> &null; ist (kein Timeout), kann - <function>socket_select</function> unendlich lange blockieren. - </para> - <para> - Bei Erfolg gibt <function>socket_select</function> die Anzahl der - Socket-Deskriptoren zurück, die in den aktualisierten Arrays - enthalten sind. Falls der Timeout wirksam wird, bevor irgend etwas - Interessantes passiert, ist das Funktionsergebnis 0. Falls ein - Fehler auftritt wird &false; zurückgegeben. Der Fehlercode kann dann - mit <function>socket_last_error</function> abgefragt werden. - </para> - <note> - <para> - Wenn Sie einen Fehler aufspüren wollen, müssen Sie unbedingt den - Operator <literal>===</literal> benutzen. Weil - <function>socket_select</function> auch 0 zurückgeben kann, wird der - Vergleich mit <literal>==</literal> sonst zu &true; ausgewertet. - <example> - <title>Understanding <function>socket_select</function>'s result</title> - <programlisting role="php"> + </programlisting> + </example> + </para> + </note> + </refsect1> + + <refsect1 role="examples"> + &reftitle.examples; + <para> + <example> + <title><function>socket_select</function> Beispiel</title> + <programlisting role="php"> <![CDATA[ <?php -if (false === socket_select($r, $w, $e = NULL, 0)) { - echo "socket_select() failed, reason: " . - socket_strerror(socket_last_error()) . "\n"; +/* Das Array read vorbereiten */ +$read = array($socket1, $socket2); +$write = NULL; +$except = NULL; +$num_changed_sockets = socket_select($read, $write, $except, 0); + +if ($num_changed_sockets === false) { + /* Fehlerbehandlung */ +} else if ($num_changed_sockets > 0) { + /* Mindestens an einem Socket ist etwas Interessantes passiert */ } ?> ]]> - </programlisting> - </example> - </para> - </note> - <note> - <para> - Seien Sie sich bewusst, dass manche Socket-Implementierungen sehr - sorgfältig benutzt werden müssen. Ein paar grundsätzliche Regeln: - <itemizedlist> - <listitem> - <simpara> - Sie sollten immer versuchen, <function>socket_select</function> - ohne Timeout zu benutzen. Ihr Programm sollte nichts tun, wenn - keine Daten verfügbar sind. Code, der von Zeitbegrenzungen - abhängig ist, ist normalerweise nicht portierbar und schwierig - zu debuggen. - </simpara> - </listitem> - <listitem> - <simpara> - Es sollte kein Socket-Deskriptor in die Arrays eingefügt werden, - wenn Sie nicht vorhaben, die Ergebnisse nach der Ausführung - eines <function>socket_select</function> Funktionsaufrufs zu - prüfen und entsprechend darauf zu reagieren. - Nachdem <function>socket_select</function> beendet ist, müssen - alle Sockets in allen Socket-Arrays geprüft werden. Jeder - Socket, der zum Schreiben zur Verfügung steht, muss beschrieben - werden und aus jedem Socket, der zum Lesen verfügbar ist, muss - gelesen werden. - </simpara> - </listitem> - <listitem> - <simpara> - Bei Schreib/Leseoperationen auf den Sockets in den Arrays müssen - Sie damit rechnen, dass nicht notwendigerweise alle Daten - geschrieben/gelesen werden, die Sie angeben. Seien Sie darauf - vorbereitet, dass Sie möglicherweise nur ein einziges Byte - schreiben/lesen können. - </simpara> - </listitem> - <listitem> - <simpara> - Fast allen Socket-Implementierungen ist gemeinsam, dass sie nur - eine einzige Ausnahme in dem <parameter>except</parameter> - Array auffangen können. Dies ist, wenn ausserordentlich Daten - höherer Priorität empfangen werden. - </simpara> - </listitem> - </itemizedlist> - </para> - </note> - <para> - See also - <function>socket_read</function>, - <function>socket_write</function>, - <function>socket_last_error</function> und - <function>socket_strerror</function>. - </para> - </refsect1> - </refentry> + </programlisting> + </example> + </para> + </refsect1> + + <refsect1 role="notes"> + &reftitle.notes; + <note> + <para> + Seien Sie sich bewusst, dass manche Socket-Implementierungen sehr + sorgfältig benutzt werden müssen. Ein paar grundsätzliche Regeln: + <itemizedlist> + <listitem> + <simpara> + Sie sollten immer versuchen, <function>socket_select</function> ohne + Timeout zu benutzen. Ihr Programm sollte nichts tun, wenn keine Daten + verfügbar sind. Code, der von Zeitbegrenzungen abhängig ist, ist + normalerweise nicht portierbar und schwierig zu debuggen. + </simpara> + </listitem> + <listitem> + <simpara> + Es sollte kein Socket-Deskriptor in die Arrays eingefügt werden, wenn + Sie nicht vorhaben, die Ergebnisse nach der Ausführung von + <function>socket_select</function> zu prüfen und entsprechend darauf zu + reagieren. Nachdem <function>socket_select</function> beendet ist, müssen + alle Sockets in allen Socket-Arrays geprüft werden. Jeder Socket, der + zum Schreiben zur Verfügung steht, muss beschrieben werden und aus jedem + Socket, der zum Lesen verfügbar ist, muss gelesen werden. + </simpara> + </listitem> + <listitem> + <simpara> + Bei Schreib/Leseoperationen auf den Sockets in den Arrays müssen Sie + damit rechnen, dass nicht notwendigerweise alle Daten geschrieben/gelesen + werden, die Sie angeben. Seien Sie darauf vorbereitet, dass Sie + möglicherweise nur ein einziges Byte schreiben/lesen können. + </simpara> + </listitem> + <listitem> + <simpara> + Fast allen Socket-Implementierungen ist gemeinsam, dass sie nur eine + einzige Ausnahme in dem Array <parameter>except</parameter> auffangen + können. Und zwar, wenn bandexterne Daten von einem Socket empfangen + werden. + </simpara> + </listitem> + </itemizedlist> + </para> + </note> + </refsect1> + + <refsect1 role="seealso"> + &reftitle.seealso; + <para> + <simplelist> + <member><function>socket_read</function></member> + <member><function>socket_write</function></member> + <member><function>socket_last_error</function></member> + <member><function>socket_strerror</function></member> + </simplelist> + </para> + </refsect1> + +</refentry> <!-- Keep this comment at the end of the file Local variables: