nicobn Thu Aug 16 19:00:00 2007 UTC
Modified files:
/phpdoc/en/reference/sockets/functions socket-set-block.xml
socket-set-nonblock.xml
Log:
Added better examples and wrote a little explanation on what blocking is
http://cvs.php.net/viewvc.cgi/phpdoc/en/reference/sockets/functions/socket-set-block.xml?r1=1.8&r2=1.9&diff_format=u
Index: phpdoc/en/reference/sockets/functions/socket-set-block.xml
diff -u phpdoc/en/reference/sockets/functions/socket-set-block.xml:1.8
phpdoc/en/reference/sockets/functions/socket-set-block.xml:1.9
--- phpdoc/en/reference/sockets/functions/socket-set-block.xml:1.8 Wed Jun
20 22:25:25 2007
+++ phpdoc/en/reference/sockets/functions/socket-set-block.xml Thu Aug 16
19:00:00 2007
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="iso-8859-1"?>
-<!-- $Revision: 1.8 $ -->
+<!-- $Revision: 1.9 $ -->
<refentry xmlns="http://docbook.org/ns/docbook"
xml:id="function.socket-set-block">
<refnamediv>
<refname>socket_set_block</refname>
@@ -13,8 +13,14 @@
<methodparam><type>resource</type><parameter>socket</parameter></methodparam>
</methodsynopsis>
<para>
- The <function>socket_set_block</function> function removes the O_NONBLOCK
flag
- on the socket specified by the <parameter>socket</parameter> parameter.
+ The <function>socket_set_block</function> function removes the
+ <constant>O_NONBLOCK</constant> flag on the socket specified by the
+ <parameter>socket</parameter> parameter.
+ </para>
+ <para>
+ When an operation (e.g. receive, send, connect, accept, ...) is performed
on
+ a blocking socket, the script will pause its execution until it receives
+ a signal or it can perform the operation.
</para>
</refsect1>
@@ -26,6 +32,8 @@
<term><parameter>socket</parameter></term>
<listitem>
<para>
+ A valid socket resource created with <function>socket_create</function>
+ or <function>socket_accept</function>.
</para>
</listitem>
</varlistentry>
@@ -44,31 +52,23 @@
&reftitle.examples;
<para>
<example>
- <title><function>socket_set_block</function> example</title>
+ <title><function>socket_set_nonblock</function> example</title>
<programlisting role="php">
<![CDATA[
<?php
+$socket = socket_create_listen(1223);
+socket_set_block($socket);
-$port = 9090;
-if (($socket = socket_create_listen($port)) === false) {
- echo "socket_create_listen() failed. Reason:
".socket_strerror(socket_last_error());
-}
-
-if (socket_set_option($socket, SOL_SOCKET, SO_REUSEADDR, 1) === false) {
- echo "socket_set_option() failed. Reason:
".socket_strerror(socket_last_error($socket));
-}
-
-if (socket_set_nonblock($socket) === false) { // $socket is now nonblocking
- echo "socket_set_nonblock() failed. Reason:
".socket_strerror(socket_last_error($socket));
-}
-
-if (socket_set_block($socket) === false) { // $socket is now blocking
- echo "socket_set_block() failed. Reason: ".
socket_strerror(socket_last_error($socket));
-}
-
+socket_accept($socket);
?>
]]>
</programlisting>
+ <para>
+ This example creates a listening socket on all interfaces on port 1223 and
+ sets the socket to <constant>O_BLOCK</constant> mode.
+ <function>socket_accept</function> will hang until there is a connection
+ to accept.
+ </para>
</example>
</para>
</refsect1>
http://cvs.php.net/viewvc.cgi/phpdoc/en/reference/sockets/functions/socket-set-nonblock.xml?r1=1.11&r2=1.12&diff_format=u
Index: phpdoc/en/reference/sockets/functions/socket-set-nonblock.xml
diff -u phpdoc/en/reference/sockets/functions/socket-set-nonblock.xml:1.11
phpdoc/en/reference/sockets/functions/socket-set-nonblock.xml:1.12
--- phpdoc/en/reference/sockets/functions/socket-set-nonblock.xml:1.11 Wed Jun
20 22:25:25 2007
+++ phpdoc/en/reference/sockets/functions/socket-set-nonblock.xml Thu Aug
16 19:00:00 2007
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="iso-8859-1"?>
-<!-- $Revision: 1.11 $ -->
+<!-- $Revision: 1.12 $ -->
<refentry xmlns="http://docbook.org/ns/docbook"
xml:id="function.socket-set-nonblock">
<refnamediv>
<refname>socket_set_nonblock</refname>
@@ -13,8 +13,15 @@
<methodparam><type>resource</type><parameter>socket</parameter></methodparam>
</methodsynopsis>
<para>
- The <function>socket_set_nonblock</function> function sets the O_NONBLOCK
flag
- on the socket specified by the <parameter>socket</parameter> parameter.
+ The <function>socket_set_nonblock</function> function sets the
+ <constant>O_NONBLOCK</constant> flag on the socket specified by
+ the <parameter>socket</parameter> parameter.
+ </para>
+ <para>
+ When an operation (e.g. receive, send, connect, accept, ...) is performed
on
+ a non-blocking socket, the script not pause its execution until it receives
a
+ signal or it can perform the operation. Rather, if the operation would
result
+ in a block, the called function will fail.
</para>
</refsect1>
@@ -26,6 +33,8 @@
<term><parameter>socket</parameter></term>
<listitem>
<para>
+ A valid socket resource created with <function>socket_create</function>
+ or <function>socket_accept</function>.
</para>
</listitem>
</varlistentry>
@@ -48,21 +57,19 @@
<programlisting role="php">
<![CDATA[
<?php
-$port = 9090;
-if (($socket = socket_create_listen($port)) === false) {
- echo "socket_create_listen() failed. Reason:
".socket_strerror(socket_last_error());
-}
-
-if (socket_set_option($socket, SOL_SOCKET, SO_REUSEADDR, 1) === false) {
- echo "socket_set_option() failed. Reason:
".socket_strerror(socket_last_error($socket));
-}
-
-if (socket_set_nonblock($socket) === false) {
- echo "socket_set_nonblock() failed. Reason:
".socket_strerror(socket_last_error($socket));
-}
+$socket = socket_create_listen(1223);
+socket_set_nonblock($socket);
+
+socket_accept($socket);
?>
]]>
</programlisting>
+ <para>
+ This example creates a listening socket on all interfaces on port 1223 and
+ sets the socket to <constant>O_NONBLOCK</constant> mode.
+ <function>socket_accept</function> will immediately fail unless there is a
+ pending connection exactly at this moment.
+ </para>
</example>
</para>
</refsect1>