hholzgra Mon Dec 17 05:30:32 2001 EDT Modified files: /phpdoc/en/functions sockets.xml Log: renamed functions and added seletons for missing ones
Index: phpdoc/en/functions/sockets.xml diff -u phpdoc/en/functions/sockets.xml:1.26 phpdoc/en/functions/sockets.xml:1.27 --- phpdoc/en/functions/sockets.xml:1.26 Wed Dec 12 15:47:29 2001 +++ phpdoc/en/functions/sockets.xml Mon Dec 17 05:30:32 2001 @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="iso-8859-1"?> -<!-- $Revision: 1.26 $ --> +<!-- $Revision: 1.27 $ --> <reference id="ref.sockets"> <title>Socket functions</title> <titleabbrev>Sockets</titleabbrev> @@ -58,28 +58,28 @@ $address = '192.168.1.53'; $port = 10000; -if (($sock = socket (AF_INET, SOCK_STREAM, 0)) < 0) { - echo "socket() failed: reason: " . strerror ($sock) . "\n"; +if (($sock = socket_create (AF_INET, SOCK_STREAM, 0)) < 0) { + echo "socket_create() failed: reason: " . socket_strerror ($sock) . "\n"; } -if (($ret = bind ($sock, $address, $port)) < 0) { - echo "bind() failed: reason: " . strerror ($ret) . "\n"; +if (($ret = socket_bind ($sock, $address, $port)) < 0) { + echo "socket_bind() failed: reason: " . socket_strerror ($ret) . "\n"; } -if (($ret = listen ($sock, 5)) < 0) { - echo "listen() failed: reason: " . strerror ($ret) . "\n"; +if (($ret = socket_listen ($sock, 5)) < 0) { + echo "socket_listen() failed: reason: " . socket_strerror ($ret) . "\n"; } do { - if (($msgsock = accept_connect($sock)) < 0) { - echo "accept_connect() failed: reason: " . strerror ($msgsock) . "\n"; + if (($msgsock = socket_accept($sock)) < 0) { + echo "socket_accept() failed: reason: " . socket_strerror ($msgsock) . "\n"; break; } do { $buf = ''; - $ret = read ($msgsock, $buf, 2048); + $ret = socket_read ($msgsock, $buf, 2048); if ($ret < 0) { - echo "read() failed: reason: " . strerror ($ret) . "\n"; + echo "socket_read() failed: reason: " . socket_strerror ($ret) . "\n"; break 2; } if ($ret == 0) { @@ -87,17 +87,17 @@ } $buf = trim ($buf); if ($buf == 'quit') { - close ($msgsock); + socket_close ($msgsock); break 2; } $talkback = "PHP: You said '$buf'.\n"; - write ($msgsock, $talkback, strlen ($talkback)); + socket_write ($msgsock, $talkback, strlen ($talkback)); echo "$buf\n"; } while (true); - close ($msgsock); + socket_close ($msgsock); } while (true); -close ($sock); +socket_close ($sock); ?> ]]> </programlisting> @@ -125,17 +125,17 @@ $address = gethostbyname ('www.php.net'); /* Create a TCP/IP socket. */ -$socket = socket (AF_INET, SOCK_STREAM, 0); +$socket = socket_create (AF_INET, SOCK_STREAM, 0); if ($socket < 0) { - echo "socket() failed: reason: " . strerror ($socket) . "\n"; + echo "socket_create() failed: reason: " . socket_strerror ($socket) . "\n"; } else { - "socket() successful: " . strerror ($socket) . "\n"; + "socket_create() successful: " . socket_strerror ($socket) . "\n"; } echo "Attempting to connect to '$address' on port '$service_port'..."; -$result = connect ($socket, $address, $service_port); +$result = socket_connect ($socket, $address, $service_port); if ($result < 0) { - echo "connect() failed.\nReason: ($result) " . strerror($result) . "\n"; + echo "socket_connect() failed.\nReason: ($result) " . socket_strerror($result) . +"\n"; } else { echo "OK.\n"; } @@ -144,16 +144,16 @@ $out = ''; echo "Sending HTTP HEAD request..."; -write ($socket, $in, strlen ($in)); +socket_write ($socket, $in, strlen ($in)); echo "OK.\n"; echo "Reading response:\n\n"; -while (read ($socket, $out, 2048)) { +while (socket_read ($socket, $out, 2048)) { echo $out; } echo "Closing socket..."; -close ($socket); +socket_close ($socket); echo "OK.\n\n"; ?> ]]> @@ -162,39 +162,39 @@ </para> </partintro> - <refentry id="function.accept-connect"> + <refentry id="function.socket-accept"> <refnamediv> - <refname>accept_connect</refname> + <refname>socket_accept</refname> <refpurpose>Accepts a connection on a socket</refpurpose> </refnamediv> <refsect1> <title>Description</title> <funcsynopsis> <funcprototype> - <funcdef>int <function>accept_connect</function></funcdef> + <funcdef>int <function>socket_accept</function></funcdef> <paramdef>resource <parameter>socket</parameter></paramdef> </funcprototype> </funcsynopsis> &warn.experimental.func; <para> After the socket <parameter>socket</parameter> has been created - using <function>socket</function>, bound to a name with - <function>bind</function>, and told to listen for connections - with <function>listen</function>, this function will accept + using <function>socket_create</function>, bound to a name with + <function>socket_bind</function>, and told to listen for connections + with <function>socket_listen</function>, this function will accept incoming connections on that socket. Once a successful connection is made, a new socket descriptor is returned, which may be used for communication. If there are multiple connections queued on the socket, the first will be used. If there are no pending - connections, <function>accept_connect</function> will block until + connections, <function>socket_accept</function> will block until a connection becomes present. If <parameter>socket</parameter> has been made non-blocking using <function>socket_set_blocking</function> or - <function>set_nonblock</function>, an error code will be + <function>socket_set_nonblock</function>, an error code will be returned. </para> <para> The socket descriptor returned by - <function>accept_connect</function> may not be used to accept new + <function>socket_accept</function> may not be used to accept new connections. The original listening socket <parameter>socket</parameter>, however, remains open and may be reused. @@ -202,31 +202,31 @@ <para> Returns a new socket descriptor on success, or a negative error code on failure. This code may be passed to - <function>strerror</function> to get a textual explanation of the + <function>socket_strerror</function> to get a textual explanation of the error. </para> <para> See also - <function>bind</function>, - <function>connect</function>, - <function>listen</function>, - <function>socket</function>, + <function>socket_bind</function>, + <function>socket_connect</function>, + <function>socket_listen</function>, + <function>socket_create</function>, <function>socket_get_status</function>, and - <function>strerror</function>. + <function>socket_strerror</function>. </para> </refsect1> </refentry> - <refentry id="function.bind"> + <refentry id="function.socket-bind"> <refnamediv> - <refname>bind</refname> + <refname>socket_bind</refname> <refpurpose>Binds a name to a socket</refpurpose> </refnamediv> <refsect1> <title>Description</title> <funcsynopsis> <funcprototype> - <funcdef>int <function>bind</function></funcdef> + <funcdef>int <function>socket_bind</function></funcdef> <paramdef>resource <parameter>socket</parameter></paramdef> <paramdef>string <parameter>address</parameter></paramdef> <paramdef>int @@ -236,10 +236,10 @@ </funcsynopsis> &warn.experimental.func; <para> - <function>bind</function> binds the name given in + <function>socket_bind</function> binds the name given in <parameter>address</parameter> to the socket described by <parameter>socket</parameter>, which must be a valid socket - descriptor created with <function>socket</function>. + descriptor created with <function>socket_create</function>. </para> <para> The <parameter>address</parameter> parameter is either an IP @@ -257,70 +257,69 @@ </para> <para> Returns zero on success, or a negative error code on - failure. This code may be passed to <function>strerror</function> + failure. This code may be passed to <function>socket_strerror</function> to get a textual explanation of the error. </para> <para> See also - <function>accept_connect</function>, - <function>connect</function>, - <function>listen</function>, - <function>socket</function>, + <function>socket_connect</function>, + <function>socket_listen</function>, + <function>socket_create</function>, <function>socket_get_status</function>, and - <function>strerror</function>. + <function>socket_strerror</function>. </para> </refsect1> </refentry> - <refentry id="function.close"> + <refentry id="function.socket-close"> <refnamediv> - <refname>close</refname> - <refpurpose>Closes a file descriptor</refpurpose> + <refname>socket_close</refname> + <refpurpose>Closes a socket descriptor</refpurpose> </refnamediv> <refsect1> <title>Description</title> <funcsynopsis> <funcprototype> - <funcdef>bool <function>close</function></funcdef> + <funcdef>bool <function>soclet_close</function></funcdef> <paramdef>resource <parameter>socket</parameter></paramdef> </funcprototype> </funcsynopsis> &warn.experimental.func; <para> - <function>close</function> closes the file (or socket) descriptor + <function>socket_close</function> closes the file (or socket) descriptor given by <parameter>socket</parameter>. </para> <para> - Note that <function>close</function> should not be used on PHP + Note that <function>socket_close</function> should not be used on PHP file descriptors created with <function>fopen</function>, <function>popen</function>, <function>fsockopen</function>, or <function>psockopen</function>; it is meant for sockets created - with <function>socket</function> or - <function>accept_connect</function>. + with <function>socket_create</function> or + <function>socket_accept</function>. </para> <para> Returns &true; on success, or &false; if an error occurs (i.e., <parameter>socket</parameter> is invalid). </para> <para> - See also <function>bind</function>, <function>listen</function>, - <function>socket</function>, + See also <function>socket_bind</function>, <function>socket_listen</function>, + <function>socket_create</function>, <function>socket_get_status</function>, and - <function>strerror</function>. + <function>socket_strerror</function>. </para> </refsect1> </refentry> - <refentry id="function.connect"> + <refentry id="function.socket-connect"> <refnamediv> - <refname>connect</refname> + <refname>socket_connect</refname> <refpurpose>Initiates a connection on a socket</refpurpose> </refnamediv> <refsect1> <title>Description</title> <funcsynopsis> <funcprototype> - <funcdef>int <function>connect</function></funcdef> + <funcdef>int <function>socket_connect</function></funcdef> <paramdef>resource <parameter>socket</parameter></paramdef> <paramdef>string <parameter>address</parameter></paramdef> <paramdef>int @@ -328,11 +327,11 @@ </paramdef> </funcprototype> </funcsynopsis> - &warn.experimental.func; + &warn.experimental.func; <para> Initiates a connection using the socket descriptor <parameter>socket</parameter>, which must be a valid socket - descriptor created with <function>socket</function>. + descriptor created with <function>socket_create</function>. </para> <para> The <parameter>address</parameter> parameter is either an IP @@ -350,75 +349,75 @@ </para> <para> Returns zero on success, or a negative error code on - failure. This code may be passed to <function>strerror</function> + failure. This code may be passed to <function>socket_strerror</function> to get a textual explanation of the error. </para> <para> See also - <function>bind</function>, - <function>listen</function>, - <function>socket</function>, + <function>socket_bind</function>, + <function>socket_listen</function>, + <function>socket_create</function>, <function>socket_get_status</function>, and - <function>strerror</function>. + <function>socket_strerror</function>. </para> </refsect1> </refentry> - <refentry id="function.listen"> + <refentry id="function.socket-listen"> <refnamediv> - <refname>listen</refname> + <refname>socket_listen</refname> <refpurpose>Listens for a connection on a socket</refpurpose> </refnamediv> <refsect1> <title>Description</title> <funcsynopsis> <funcprototype> - <funcdef>int <function>listen</function></funcdef> + <funcdef>int <function>socket_listen</function></funcdef> <paramdef>resource <parameter>socket</parameter></paramdef> <paramdef>int <parameter>backlog</parameter></paramdef> </funcprototype> </funcsynopsis> - &warn.experimental.func; + &warn.experimental.func; <para> After the socket <parameter>socket</parameter> has been created - using <function>socket</function> and bound to a name with - <function>bind</function>, it may be told to listen for incoming + using <function>socket_create</function> and bound to a name with + <function>socket_bind</function>, it may be told to listen for incoming connections on <parameter>socket</parameter>. A maximum of <parameter>backlog</parameter> incoming connections will be queued for processing. </para> <para> - <function>listen</function> is applicable only to sockets with + <function>socket_listen</function> is applicable only to sockets with type <literal>SOCK_STREAM</literal> or <literal>SOCK_SEQPACKET</literal>. </para> <para> Returns zero on success, or a negative error code on - failure. This code may be passed to <function>strerror</function> + failure. This code may be passed to <function>socket_strerror</function> to get a textual explanation of the error. </para> <para> See also - <function>accept_connect</function>, - <function>bind</function>, - <function>connect</function>, - <function>socket</function>, + <function>socket_accept</function>, + <function>socket_bind</function>, + <function>socket_connect</function>, + <function>socket_create</function>, <function>socket_get_status</function>, and - <function>strerror</function>. + <function>socket_strerror</function>. </para> </refsect1> </refentry> - <refentry id="function.read"> + <refentry id="function.socket-read"> <refnamediv> - <refname>read</refname> + <refname>socket_read</refname> <refpurpose>Read from a socket</refpurpose> </refnamediv> <refsect1> <title>Description</title> <funcsynopsis> <funcprototype> - <funcdef>int <function>read</function></funcdef> + <funcdef>int <function>socket_read</function></funcdef> <paramdef>resource <parameter>socket_des</parameter></paramdef> <paramdef>string <parameter>buffer</parameter></paramdef> <paramdef>int <parameter>length</parameter></paramdef> @@ -427,9 +426,9 @@ </funcsynopsis> &warn.experimental.func; <para> - The function <function>read</function> reads from socket + The function <function>socket_read</function> reads from socket <parameter>socket_des</parameter>created by the - <function>accept_connect</function> function into + <function>socket_accept</function> function into <parameter>buffer</parameter> the number of bytes set by <parameter>length</parameter>. Otherwise you can use \n, \t or \0 to end reading. Returns number of bytes that have been read. @@ -439,7 +438,7 @@ <itemizedlist> <listitem> <simpara> - PHP_BINARY_READ - use the system <function>read</function> + PHP_BINARY_READ - use the system <function>socket_read</function> (Default in PHP >= 4.1.0) </simpara> </listitem> @@ -452,33 +451,33 @@ </para> <para> See also - <function>accept_connect</function>, - <function>bind</function>, - <function>connect</function>, - <function>listen</function>, - <function>strerror</function>, + <function>socket_accept</function>, + <function>socket_bind</function>, + <function>socket_connect</function>, + <function>socket_listen</function>, + <function>socket_strerror</function>, <function>socket_get_status</function> and - <function>write</function>. + <function>socket_write</function>. </para> </refsect1> </refentry> - <refentry id="function.socket"> + <refentry id="function.socket-create"> <refnamediv> - <refname>socket</refname> + <refname>socket_create</refname> <refpurpose>Create a socket (endpoint for communication)</refpurpose> </refnamediv> <refsect1> <title>Description</title> <funcsynopsis> <funcprototype> - <funcdef>int <function>socket</function></funcdef> + <funcdef>int <function>socket_create</function></funcdef> <paramdef>int <parameter>domain</parameter></paramdef> <paramdef>int <parameter>type</parameter></paramdef> <paramdef>int <parameter>protocol</parameter></paramdef> </funcprototype> </funcsynopsis> - &warn.experimental.func; + &warn.experimental.func; <para> Creates a communication endpoint (a socket), and returns a descriptor to the socket. @@ -502,62 +501,62 @@ <para> Returns a valid socket descriptor on success, or a negative error code on failure. This code may be passed to - <function>strerror</function> to get a textual explanation of the + <function>socket_strerror</function> to get a textual explanation of the error. </para> <para> - For more information on the usage of <function>socket</function>, + For more information on the usage of <function>socket_create</function>, as well as on the meanings of the various parameters, see the Unix man page socket (2). </para> <para> See also - <function>accept_connect</function>, - <function>bind</function>, - <function>connect</function>, - <function>listen</function>, - <function>strerror</function>, and + <function>socket_accept</function>, + <function>socket_bind</function>, + <function>socket_connect</function>, + <function>socket_listen</function>, + <function>socket_strerror</function>, and <function>socket_get_status</function>. </para> </refsect1> </refentry> - <refentry id="function.strerror"> + <refentry id="function.socket-strerror"> <refnamediv> - <refname>strerror</refname> + <refname>socket_strerror</refname> <refpurpose>Return a string describing a socket error</refpurpose> </refnamediv> <refsect1> <title>Description</title> <funcsynopsis> <funcprototype> - <funcdef>string <function>strerror</function></funcdef> + <funcdef>string <function>socket_strerror</function></funcdef> <paramdef>int <parameter>errno</parameter></paramdef> </funcprototype> </funcsynopsis> &warn.experimental.func; <para> - <function>strerror</function> takes as its + <function>socket_strerror</function> takes as its <parameter>errno</parameter> parameter the return value of one of the socket functions, and returns the corresponding explanatory text. This makes it a bit more pleasant to figure out why something didn't work; for instance, instead of having to track down a system include file to find out what '-111' means, you - just pass it to <function>strerror</function>, and it tells you + just pass it to <function>socket_strerror</function>, and it tells you what happened. </para> <para> <example> - <title><function>strerror</function> example</title> + <title><function>socket_strerror</function> example</title> <programlisting role="php"> <![CDATA[ <?php -if (($socket = socket (AF_INET, SOCK_STREAM, 0)) < 0) { - echo "socket() failed: reason: " . strerror ($socket) . "\n"; +if (($socket = socket_create (AF_INET, SOCK_STREAM, 0)) < 0) { + echo "socket_create() failed: reason: " . socket_strerror ($socket) . "\n"; } -if (($ret = bind ($socket, '127.0.0.1', 80)) < 0) { - echo "bind() failed: reason: " . strerror ($ret) . "\n"; +if (($ret = socket_bind ($socket, '127.0.0.1', 80)) < 0) { + echo "socket_bind() failed: reason: " . socket_strerror ($ret) . "\n"; } ?> ]]> @@ -573,26 +572,26 @@ </para> <para> See also - <function>accept_connect</function>, - <function>bind</function>, - <function>connect</function>, - <function>listen</function>, - <function>socket</function>, and + <function>socket_accept</function>, + <function>socket_bind</function>, + <function>socket_connect</function>, + <function>socket_listen</function>, + <function>socket_create</function>, and <function>socket_get_status</function>. </para> </refsect1> </refentry> - <refentry id="function.write"> + <refentry id="function.socket-write"> <refnamediv> - <refname>write</refname> + <refname>socket_write</refname> <refpurpose>Write to a socket</refpurpose> </refnamediv> <refsect1> <title>Description</title> <funcsynopsis> <funcprototype> - <funcdef>int <function>write</function></funcdef> + <funcdef>int <function>socket_write</function></funcdef> <paramdef>resource <parameter>socket_des</parameter></paramdef> <paramdef>string <parameter>&buffer</parameter></paramdef> <paramdef>int <parameter>length</parameter></paramdef> @@ -600,20 +599,694 @@ </funcsynopsis> &warn.experimental.func; <para> - The function <function>write</function> writes to the socket + The function <function>socket_write</function> writes to the socket <parameter>socket_des</parameter> from <parameter>&buffer</parameter> the number of bytes set by <parameter>length</parameter>. </para> <para> See also - <function>accept_connect</function>, - <function>bind</function>, - <function>connect</function>, - <function>listen</function>, - <function>read</function>, - <function>strerror</function>, and + <function>socket_accept</function>, + <function>socket_bind</function>, + <function>socket_connect</function>, + <function>socket_listen</function>, + <function>socket_read</function>, + <function>socket_strerror</function>, and <function>socket_get_status</function>. + </para> + </refsect1> + </refentry> + + <refentry id="function.socket-fd-alloc"> + <refnamediv> + <refname>socket_fd_alloc</refname> + <refpurpose>Allocates a new file descriptor set </refpurpose> + </refnamediv> + <refsect1> + <title>Description</title> + <funcsynopsis> + <funcprototype> + <funcdef>resource <function>socket_fd_alloc</function></funcdef> + <void/> + </funcprototype> + </funcsynopsis> + &warn.experimental.func; + <para> + &warn.undocumented.func; + </para> + </refsect1> + </refentry> + + <refentry id="function.socket-fd-free"> + <refnamediv> + <refname>socket_fd_free</refname> + <refpurpose>Deallocates a file descriptor set </refpurpose> + </refnamediv> + <refsect1> + <title>Description</title> + <funcsynopsis> + <funcprototype> + <funcdef>bool <function>socket_fd_free</function></funcdef> + <paramdef>resource <parameter>set</parameter></paramdef> + </funcprototype> + </funcsynopsis> + &warn.experimental.func; + <para> + &warn.undocumented.func; + </para> + </refsect1> + </refentry> + + <refentry id="function.socket-fd-set"> + <refnamediv> + <refname>socket_fd_set</refname> + <refpurpose>Adds (a) file descriptor(s) to a set </refpurpose> + </refnamediv> + <refsect1> + <title>Description</title> + <funcsynopsis> + <funcprototype> + <funcdef>bool <function>socket_fd_set</function></funcdef> + <paramdef>resource <parameter>set</parameter></paramdef> + <paramdef>mixed <parameter>socket</parameter></paramdef> + </funcprototype> + </funcsynopsis> + &warn.experimental.func; + <para> + &warn.undocumented.func; + </para> + </refsect1> + </refentry> + + <refentry id="function.socket-fd-clear"> + <refnamediv> + <refname>socket_fd_clear</refname> + <refpurpose>Clears (a) file descriptor(s) from a set </refpurpose> + </refnamediv> + <refsect1> + <title>Description</title> + <funcsynopsis> + <funcprototype> + <funcdef>bool <function>socket_fd_clear</function></funcdef> + <paramdef>resource <parameter>set</parameter></paramdef> + <paramdef>mixed <parameter>socket</parameter></paramdef> + </funcprototype> + </funcsynopsis> + &warn.experimental.func; + <para> + &warn.undocumented.func; + </para> + </refsect1> + </refentry> + + <refentry id="function.socket-fd-isset"> + <refnamediv> + <refname>socket_fd_isset</refname> + <refpurpose>Checks to see if a file descriptor is set within the file descrirptor +set </refpurpose> + </refnamediv> + <refsect1> + <title>Description</title> + <funcsynopsis> + <funcprototype> + <funcdef>bool <function>socket_fd_isset</function></funcdef> + <paramdef>resource <parameter>set</parameter></paramdef> + <paramdef>resource <parameter>socket</parameter></paramdef> + </funcprototype> + </funcsynopsis> + &warn.experimental.func; + <para> + &warn.undocumented.func; + </para> + </refsect1> + </refentry> + + <refentry id="function.socket-fd-zero"> + <refnamediv> + <refname>socket_fd_zero</refname> + <refpurpose>Clears a file descriptor set </refpurpose> + </refnamediv> + <refsect1> + <title>Description</title> + <funcsynopsis> + <funcprototype> + <funcdef>bool <function>socket_fd_zero</function></funcdef> + <paramdef>resource <parameter>set</parameter></paramdef> + </funcprototype> + </funcsynopsis> + &warn.experimental.func; + <para> + &warn.undocumented.func; + </para> + </refsect1> + </refentry> + + <refentry id="function.socket-select"> + <refnamediv> + <refname>socket_select</refname> + <refpurpose>Runs the select() system call on the sets mentioned with a timeout +specified by tv_sec and tv_usec </refpurpose> + </refnamediv> + <refsect1> + <title>Description</title> + <funcsynopsis> + <funcprototype> + <funcdef>int <function>socket_select</function></funcdef> + <paramdef>resource <parameter>read_fd</parameter></paramdef> + <paramdef>resource <parameter>write_fd</parameter></paramdef> + <paramdef>resource <parameter>except_fd</parameter></paramdef> + <paramdef>int <parameter>tv_sec</parameter></paramdef> + <paramdef>int + <parameter><optional>tv_usec</optional></parameter> + </paramdef> + </funcprototype> + </funcsynopsis> + &warn.experimental.func; + <para> + &warn.undocumented.func; + </para> + </refsect1> + </refentry> + + <refentry id="function.socket-create-listen"> + <refnamediv> + <refname>socket_create_listen</refname> + <refpurpose>Opens a socket on port to accept connections </refpurpose> + </refnamediv> + <refsect1> + <title>Description</title> + <funcsynopsis> + <funcprototype> + <funcdef>resource <function>socket_create_listen</function></funcdef> + <paramdef>int <parameter>port</parameter></paramdef> + <paramdef>int + <parameter><optional>backlog</optional></parameter> + </paramdef> + </funcprototype> + </funcsynopsis> + &warn.experimental.func; + <para> + &warn.undocumented.func; + </para> + </refsect1> + </refentry> + + <refentry id="function.socket-set-nonblock"> + <refnamediv> + <refname>socket_set_nonblock</refname> + <refpurpose>Sets nonblocking mode for file descriptor fd </refpurpose> + </refnamediv> + <refsect1> + <title>Description</title> + <funcsynopsis> + <funcprototype> + <funcdef>bool <function>socket_set_nonblock</function></funcdef> + <paramdef>resource <parameter>socket</parameter></paramdef> + </funcprototype> + </funcsynopsis> + &warn.experimental.func; + <para> + &warn.undocumented.func; + </para> + </refsect1> + </refentry> + + <refentry id="function.socket-getsockname"> + <refnamediv> + <refname>socket_getsockname</refname> + <refpurpose>Given an fd, stores a string representing sa.sin_addr and the value +of sa.sin_port into addr and port describing the local side of a socket </refpurpose> + </refnamediv> + <refsect1> + <title>Description</title> + <funcsynopsis> + <funcprototype> + <funcdef>bool <function>socket_getsockname</function></funcdef> + <paramdef>resource <parameter>socket</parameter></paramdef> + <paramdef>string <parameter>&addr</parameter></paramdef> + <paramdef>int + <parameter><optional>&port</optional></parameter> + </paramdef> + </funcprototype> + </funcsynopsis> + &warn.experimental.func; + <para> + &warn.undocumented.func; + </para> + </refsect1> + </refentry> + + <refentry id="function.socket-getpeername"> + <refnamediv> + <refname>socket_getpeername</refname> + <refpurpose>Given an fd, stores a string representing sa.sin_addr and the value +of sa.sin_port into addr and port describing the remote side of a socket </refpurpose> + </refnamediv> + <refsect1> + <title>Description</title> + <funcsynopsis> + <funcprototype> + <funcdef>bool <function>socket_getpeername</function></funcdef> + <paramdef>resource <parameter>socket</parameter></paramdef> + <paramdef>string <parameter>&addr</parameter></paramdef> + <paramdef>int + <parameter><optional>&port</optional></parameter> + </paramdef> + </funcprototype> + </funcsynopsis> + &warn.experimental.func; + <para> + &warn.undocumented.func; + </para> + </refsect1> + </refentry> + + <refentry id="function.socket-iovec-alloc"> + <refnamediv> + <refname>socket_iovec_alloc</refname> + <refpurpose>...]) Builds a 'struct iovec' for use with sendmsg, recvmsg, writev, +and readv </refpurpose> + </refnamediv> + <refsect1> + <title>Description</title> + <funcsynopsis> + <funcprototype> + <funcdef>resource <function>socket_iovec_alloc</function></funcdef> + <paramdef>int <parameter>num_vectors</parameter></paramdef> + <paramdef>int + <parameter><optional></optional></parameter> + </paramdef> + </funcprototype> + </funcsynopsis> + &warn.experimental.func; + <para> + &warn.undocumented.func; + </para> + </refsect1> + </refentry> + + <refentry id="function.socket-iovec-fetch"> + <refnamediv> + <refname>socket_iovec_fetch</refname> + <refpurpose>Returns the data held in the iovec specified by +iovec_id[iovec_position] </refpurpose> + </refnamediv> + <refsect1> + <title>Description</title> + <funcsynopsis> + <funcprototype> + <funcdef>string <function>socket_iovec_fetch</function></funcdef> + <paramdef>resource <parameter>iovec</parameter></paramdef> + <paramdef>int <parameter>iovec_position</parameter></paramdef> + </funcprototype> + </funcsynopsis> + &warn.experimental.func; + <para> + &warn.undocumented.func; + </para> + </refsect1> + </refentry> + + <refentry id="function.socket-iovec-set"> + <refnamediv> + <refname>socket_iovec_set</refname> + <refpurpose>Sets the data held in iovec_id[iovec_position] to new_val +</refpurpose> + </refnamediv> + <refsect1> + <title>Description</title> + <funcsynopsis> + <funcprototype> + <funcdef>bool <function>socket_iovec_set</function></funcdef> + <paramdef>resource <parameter>iovec</parameter></paramdef> + <paramdef>int <parameter>iovec_position</parameter></paramdef> + <paramdef>string <parameter>new_val</parameter></paramdef> + </funcprototype> + </funcsynopsis> + &warn.experimental.func; + <para> + &warn.undocumented.func; + </para> + </refsect1> + </refentry> + + <refentry id="function.socket-iovec-add"> + <refnamediv> + <refname>socket_iovec_add</refname> + <refpurpose>Adds a new vector to the scatter/gather array </refpurpose> + </refnamediv> + <refsect1> + <title>Description</title> + <funcsynopsis> + <funcprototype> + <funcdef>bool <function>socket_iovec_add</function></funcdef> + <paramdef>resource <parameter>iovec</parameter></paramdef> + <paramdef>int <parameter>iov_len</parameter></paramdef> + </funcprototype> + </funcsynopsis> + &warn.experimental.func; + <para> + &warn.undocumented.func; + </para> + </refsect1> + </refentry> + + <refentry id="function.socket-iovec-delete"> + <refnamediv> + <refname>socket_iovec_delete</refname> + <refpurpose>Deletes a vector from an array of vectors </refpurpose> + </refnamediv> + <refsect1> + <title>Description</title> + <funcsynopsis> + <funcprototype> + <funcdef>bool <function>socket_iovec_delete</function></funcdef> + <paramdef>resource <parameter>iovec</parameter></paramdef> + <paramdef>int <parameter>iov_pos</parameter></paramdef> + </funcprototype> + </funcsynopsis> + &warn.experimental.func; + <para> + &warn.undocumented.func; + </para> + </refsect1> + </refentry> + + <refentry id="function.socket-iovec-free"> + <refnamediv> + <refname>socket_iovec_free</refname> + <refpurpose>Frees the iovec specified by iovec_id </refpurpose> + </refnamediv> + <refsect1> + <title>Description</title> + <funcsynopsis> + <funcprototype> + <funcdef>bool <function>socket_iovec_free</function></funcdef> + <paramdef>resource <parameter>iovec</parameter></paramdef> + </funcprototype> + </funcsynopsis> + &warn.experimental.func; + <para> + &warn.undocumented.func; + </para> + </refsect1> + </refentry> + + <refentry id="function.socket-readv"> + <refnamediv> + <refname>socket_readv</refname> + <refpurpose>Reads from an fd, using the scatter-gather array defined by iovec_id +</refpurpose> + </refnamediv> + <refsect1> + <title>Description</title> + <funcsynopsis> + <funcprototype> + <funcdef>bool <function>socket_readv</function></funcdef> + <paramdef>resource <parameter>socket</parameter></paramdef> + <paramdef>resource <parameter>iovec_id</parameter></paramdef> + </funcprototype> + </funcsynopsis> + &warn.experimental.func; + <para> + &warn.undocumented.func; + </para> + </refsect1> + </refentry> + + <refentry id="function.socket-writev"> + <refnamediv> + <refname>socket_writev</refname> + <refpurpose>Writes to a file descriptor, fd, using the scatter-gather array +defined by iovec_id </refpurpose> + </refnamediv> + <refsect1> + <title>Description</title> + <funcsynopsis> + <funcprototype> + <funcdef>bool <function>socket_writev</function></funcdef> + <paramdef>resource <parameter>socket</parameter></paramdef> + <paramdef>resource <parameter>iovec_id</parameter></paramdef> + </funcprototype> + </funcsynopsis> + &warn.experimental.func; + <para> + &warn.undocumented.func; + </para> + </refsect1> + </refentry> + + <refentry id="function.socket-recv"> + <refnamediv> + <refname>socket_recv</refname> + <refpurpose>Receives data from a connected socket </refpurpose> + </refnamediv> + <refsect1> + <title>Description</title> + <funcsynopsis> + <funcprototype> + <funcdef>mixed <function>socket_recv</function></funcdef> + <paramdef>resource <parameter>socket</parameter></paramdef> + <paramdef>int <parameter>len</parameter></paramdef> + <paramdef>int <parameter>flags</parameter></paramdef> + </funcprototype> + </funcsynopsis> + &warn.experimental.func; + <para> + &warn.undocumented.func; + </para> + </refsect1> + </refentry> + + <refentry id="function.socket-send"> + <refnamediv> + <refname>socket_send</refname> + <refpurpose>Sends data to a connected socket </refpurpose> + </refnamediv> + <refsect1> + <title>Description</title> + <funcsynopsis> + <funcprototype> + <funcdef>int <function>socket_send</function></funcdef> + <paramdef>resource <parameter>socket</parameter></paramdef> + <paramdef>string <parameter>buf</parameter></paramdef> + <paramdef>int <parameter>len</parameter></paramdef> + <paramdef>int <parameter>flags</parameter></paramdef> + </funcprototype> + </funcsynopsis> + &warn.experimental.func; + <para> + &warn.undocumented.func; + </para> + </refsect1> + </refentry> + + <refentry id="function.socket-recvfrom"> + <refnamediv> + <refname>socket_recvfrom</refname> + <refpurpose>Receives data from a socket, connected or not </refpurpose> + </refnamediv> + <refsect1> + <title>Description</title> + <funcsynopsis> + <funcprototype> + <funcdef>int <function>socket_recvfrom</function></funcdef> + <paramdef>resource <parameter>socket</parameter></paramdef> + <paramdef>string <parameter>&buf</parameter></paramdef> + <paramdef>int <parameter>len</parameter></paramdef> + <paramdef>int <parameter>flags</parameter></paramdef> + <paramdef>string <parameter>&name</parameter></paramdef> + <paramdef>int + <parameter><optional>&port</optional></parameter> + </paramdef> + </funcprototype> + </funcsynopsis> + &warn.experimental.func; + <para> + &warn.undocumented.func; + </para> + </refsect1> + </refentry> + + <refentry id="function.socket-sendto"> + <refnamediv> + <refname>socket_sendto</refname> + <refpurpose>Sends a message to a socket, whether it is connected or not +</refpurpose> + </refnamediv> + <refsect1> + <title>Description</title> + <funcsynopsis> + <funcprototype> + <funcdef>int <function>socket_sendto</function></funcdef> + <paramdef>resource <parameter>socket</parameter></paramdef> + <paramdef>string <parameter>buf</parameter></paramdef> + <paramdef>int <parameter>len</parameter></paramdef> + <paramdef>int <parameter>flags</parameter></paramdef> + <paramdef>string <parameter>addr</parameter></paramdef> + <paramdef>int + <parameter><optional>port</optional></parameter> + </paramdef> + </funcprototype> + </funcsynopsis> + &warn.experimental.func; + <para> + &warn.undocumented.func; + </para> + </refsect1> + </refentry> + + <refentry id="function.socket-recvmsg"> + <refnamediv> + <refname>socket_recvmsg</refname> + <refpurpose>Used to receive messages on a socket, whether connection-oriented or +not </refpurpose> + </refnamediv> + <refsect1> + <title>Description</title> + <funcsynopsis> + <funcprototype> + <funcdef>bool <function>socket_recvmsg</function></funcdef> + <paramdef>resource <parameter>socket</parameter></paramdef> + <paramdef>resource <parameter>iovec</parameter></paramdef> + <paramdef>array <parameter>&control</parameter></paramdef> + <paramdef>int <parameter>&controllen</parameter></paramdef> + <paramdef>int <parameter>&flags</parameter></paramdef> + <paramdef>string <parameter>&addr</parameter></paramdef> + <paramdef>int + <parameter><optional>&port</optional></parameter> + </paramdef> + </funcprototype> + </funcsynopsis> + &warn.experimental.func; + <para> + &warn.undocumented.func; + </para> + </refsect1> + </refentry> + + <refentry id="function.socket-sendmsg"> + <refnamediv> + <refname>socket_sendmsg</refname> + <refpurpose>Sends a message to a socket, regardless of whether it is +connection-oriented or not </refpurpose> + </refnamediv> + <refsect1> + <title>Description</title> + <funcsynopsis> + <funcprototype> + <funcdef>bool <function>socket_sendmsg</function></funcdef> + <paramdef>resource <parameter>socket</parameter></paramdef> + <paramdef>resource <parameter>iovec</parameter></paramdef> + <paramdef>int <parameter>flags</parameter></paramdef> + <paramdef>string <parameter>addr</parameter></paramdef> + <paramdef>int + <parameter><optional>port</optional></parameter> + </paramdef> + </funcprototype> + </funcsynopsis> + &warn.experimental.func; + <para> + &warn.undocumented.func; + </para> + </refsect1> + </refentry> + + <refentry id="function.socket-getopt"> + <refnamediv> + <refname>socket_getopt</refname> + <refpurpose>Gets socket options for the socket </refpurpose> + </refnamediv> + <refsect1> + <title>Description</title> + <funcsynopsis> + <funcprototype> + <funcdef>mixed <function>socket_getopt</function></funcdef> + <paramdef>resource <parameter>socket</parameter></paramdef> + <paramdef>int <parameter>level</parameter></paramdef> + <paramdef>int <parameter>optname</parameter></paramdef> + </funcprototype> + </funcsynopsis> + &warn.experimental.func; + <para> + &warn.undocumented.func; + </para> + </refsect1> + </refentry> + + <refentry id="function.socket-setopt"> + <refnamediv> + <refname>socket_setopt</refname> + <refpurpose>|array optval) Sets socket options for the socket </refpurpose> + </refnamediv> + <refsect1> + <title>Description</title> + <funcsynopsis> + <funcprototype> + <funcdef>bool <function>socket_setopt</function></funcdef> + <paramdef>resource <parameter>socket</parameter></paramdef> + <paramdef>int <parameter>level</parameter></paramdef> + <paramdef>int <parameter>optname</parameter></paramdef> + <paramdef>int <parameter></parameter></paramdef> + </funcprototype> + </funcsynopsis> + &warn.experimental.func; + <para> + &warn.undocumented.func; + </para> + </refsect1> + </refentry> + + <refentry id="function.socket-create-pair"> + <refnamediv> + <refname>socket_create_pair</refname> + <refpurpose>Creates a pair of indistinguishable sockets and stores them in fds. +</refpurpose> + </refnamediv> + <refsect1> + <title>Description</title> + <funcsynopsis> + <funcprototype> + <funcdef>bool <function>socket_create_pair</function></funcdef> + <paramdef>int <parameter>domain</parameter></paramdef> + <paramdef>int <parameter>type</parameter></paramdef> + <paramdef>int <parameter>protocol</parameter></paramdef> + <paramdef>array <parameter>&fd</parameter></paramdef> + </funcprototype> + </funcsynopsis> + &warn.experimental.func; + <para> + &warn.undocumented.func; + </para> + </refsect1> + </refentry> + + <refentry id="function.socket-shutdown"> + <refnamediv> + <refname>socket_shutdown</refname> + <refpurpose>Shuts down a socket for receiving, sending, or both. </refpurpose> + </refnamediv> + <refsect1> + <title>Description</title> + <funcsynopsis> + <funcprototype> + <funcdef>bool <function>socket_shutdown</function></funcdef> + <paramdef>resource <parameter>socket</parameter></paramdef> + <paramdef>int + <parameter><optional>how</optional></parameter> + </paramdef> + </funcprototype> + </funcsynopsis> + &warn.experimental.func; + <para> + &warn.undocumented.func; + </para> + </refsect1> + </refentry> + + <refentry id="function.socket-last-error"> + <refnamediv> + <refname>socket_last_error</refname> + <refpurpose>Returns/Clears the last error on the socket </refpurpose> + </refnamediv> + <refsect1> + <title>Description</title> + <funcsynopsis> + <funcprototype> + <funcdef>int <function>socket_last_error</function></funcdef> + <paramdef>resource <parameter>socket</parameter></paramdef> + </funcprototype> + </funcsynopsis> + &warn.experimental.func; + <para> + &warn.undocumented.func; </para> </refsect1> </refentry>