nlopess Sat Jul 31 07:48:38 2004 EDT
Modified files: /phpdoc/en/reference/stream constants.xml /phpdoc/en/reference/stream/functions stream-socket-accept.xml stream-socket-server.xml Log: fix #27211: clarify how to use UDP server sockets #please review this http://cvs.php.net/diff.php/phpdoc/en/reference/stream/constants.xml?r1=1.10&r2=1.11&ty=u Index: phpdoc/en/reference/stream/constants.xml diff -u phpdoc/en/reference/stream/constants.xml:1.10 phpdoc/en/reference/stream/constants.xml:1.11 --- phpdoc/en/reference/stream/constants.xml:1.10 Fri May 21 11:20:48 2004 +++ phpdoc/en/reference/stream/constants.xml Sat Jul 31 07:48:38 2004 @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="iso-8859-1"?> -<!-- $Revision: 1.10 $ --> +<!-- $Revision: 1.11 $ --> <section id="stream.constants"> &reftitle.constants; &extension.constants; @@ -95,7 +95,7 @@ <entry><constant>STREAM_SERVER_LISTEN</constant> *</entry> <entry>Tells a stream created with <function>stream_socket_server</function> and bound using the <constant>STREAM_SERVER_BIND</constant> flag to start - listening on the socket. Server sockets should always include this flag. + listening on the socket. TCP Server sockets should always include this flag. </entry> </row> <row> http://cvs.php.net/diff.php/phpdoc/en/reference/stream/functions/stream-socket-accept.xml?r1=1.2&r2=1.3&ty=u Index: phpdoc/en/reference/stream/functions/stream-socket-accept.xml diff -u phpdoc/en/reference/stream/functions/stream-socket-accept.xml:1.2 phpdoc/en/reference/stream/functions/stream-socket-accept.xml:1.3 --- phpdoc/en/reference/stream/functions/stream-socket-accept.xml:1.2 Thu Apr 1 01:31:14 2004 +++ phpdoc/en/reference/stream/functions/stream-socket-accept.xml Sat Jul 31 07:48:38 2004 @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="iso-8859-1"?> -<!-- $Revision: 1.2 $ --> +<!-- $Revision: 1.3 $ --> <refentry id="function.stream-socket-accept"> <refnamediv> <refname>stream_socket_accept</refname> @@ -31,6 +31,13 @@ <simpara> If the call fails, it will return &false;. </simpara> + <note> + <para> + This function doens't work with UDP server sockets. Use + <function>stream_socket_recvfrom</function> and + <function>stream_socket_sendto</function> instead. + </para> + </note> <para> See also <function>stream_socket_server</function>, <function>stream_socket_get_name</function>, http://cvs.php.net/diff.php/phpdoc/en/reference/stream/functions/stream-socket-server.xml?r1=1.15&r2=1.16&ty=u Index: phpdoc/en/reference/stream/functions/stream-socket-server.xml diff -u phpdoc/en/reference/stream/functions/stream-socket-server.xml:1.15 phpdoc/en/reference/stream/functions/stream-socket-server.xml:1.16 --- phpdoc/en/reference/stream/functions/stream-socket-server.xml:1.15 Wed Jun 16 09:01:22 2004 +++ phpdoc/en/reference/stream/functions/stream-socket-server.xml Sat Jul 31 07:48:38 2004 @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="iso-8859-1"?> -<!-- $Revision: 1.15 $ --> +<!-- $Revision: 1.16 $ --> <refentry id="function.stream-socket-server"> <refnamediv> <refname>stream_socket_server</refname> @@ -32,6 +32,12 @@ combination of socket creation flags. The default value of flags is <constant>STREAM_SERVER_BIND</constant> | <constant>STREAM_SERVER_LISTEN</constant>. </para> + <note> + <para> + For UDP sockets, you must use <constant>STREAM_SERVER_BIND</constant> as + the <parameter>flags</parameter> parameter. + </para> + </note> <para> This function only creates a socket, to begin accepting connections use <function>stream_socket_accept</function>. @@ -59,7 +65,7 @@ </para> <para> <example> - <title><function>stream_socket_server</function> Example</title> + <title>Using TCP server sockets</title> <programlisting role="php"> <![CDATA[ <?php @@ -92,17 +98,19 @@ <programlisting role="php"> <![CDATA[ <?php -$socket = stream_socket_server("udp://0.0.0.0:13", $errno, $errstr, STREAM_SERVER_BIND); +$socket = stream_socket_server("udp://127.0.0.1:1113", $errno, $errstr, STREAM_SERVER_BIND); if (!$socket) { - echo "ERROR: $errno - $errstr<br />\n"; -} else { - while ($conn = stream_socket_accept($socket)) { - fwrite($conn, date("D M j H:i:s Y\r\n")); - fclose($conn); - } - fclose($socket); + die("$errstr ($errno)"); } + +do { + $pkt = stream_socket_recvfrom($socket, 1, 0, $peer); + echo "$peer\n"; + stream_socket_sendto($socket, date("D M j H:i:s Y\r\n"), 0, $peer); +} while ($pkt !== false); + ?> + ]]> </programlisting> </example>