For Programmers: Free Programming Magazines  


Home > Archive > PHP Documentation > June 2007 > cvs: phpdoc /en/reference/sockets/functions socket-recvfrom.xml









You are viewing an archived Text-only version of the thread. To view this thread in it's original format and/or if you want to reply to this thread please [click here]

 

Author cvs: phpdoc /en/reference/sockets/functions socket-recvfrom.xml
Nicolas Bérard-Nault

2007-06-25, 7:05 pm

nicobn Mon Jun 25 17:15:51 2007 UTC

Modified files:
/phpdoc/en/reference/sockets/functions socket-recvfrom.xml
Log:
Documented the socket_recvfrom function


http://cvs.php.net/viewvc.cgi/phpdo...1&diff_format=u
Index: phpdoc/en/reference/sockets/functions/socket-recvfrom.xml
diff -u phpdoc/en/reference/sockets/functions/socket-recvfrom.xml:1.10 phpdoc/en/reference/sockets/functions/socket-recvfrom.xml:1.11
--- phpdoc/en/reference/sockets/functions/socket-recvfrom.xml:1.10 Wed Jun 20 22:25:25 2007
+++ phpdoc/en/reference/sockets/functions/socket-recvfrom.xml Mon Jun 25 17:15:51 2007
@@ -1,9 +1,9 @@
<?xml version="1.0" encoding="iso-8859-1"?>
-<!-- $Revision: 1.10 $ -->
+<!-- $Revision: 1.11 $ -->
<refentry xmlns="http://docbook.org/ns/docbook" xml:id="function.socket-recvfrom">
<refnamediv>
<refname>socket_recvfrom</refname>
- <refpurpose>Receives data from a socket, connected or not </refpurpose>
+ <refpurpose>Receives data from a socket whether or not it is connection-oriented</refpurpose>
</refnamediv>

<refsect1 role="description">
@@ -18,7 +18,170 @@
<methodparam choice="opt"><type>int</type><parameter role="reference">port</parameter></methodparam>
</methodsynopsis>
<para>
- &warn.undocumented.func;
+ The <function>socket_recvfrom</function> function receives <parameter>len</paramater>
+ bytes of data in <parameter>buf</parameter> from <parameter>name</parameter> on port
+ <parameter>port</parameter> (if socket is not of AF_UNIX type) using
+ <parameter>socket</parameter>. <function>socket_recvfrom</function> can be used to
+ gather data from either a connected or an unconnected socket. Additionally, one or more
+ flags can be specified to modify the behaviour of the function.
+ </para>
+ <para>
+ The <parameter>name</parameter> and <parameter>port</parameter> must be passed as a
+ reference. If the socket is not connection-oriented, <parameter>name</parameter> will
+ be set to the internet protocol address of the remote host or the path to the UNIX
+ socket. If the socket is connection-oriented, <parameter>name</parameter> is &null.
+ Additionnally, the <parameter>port</parameter> will contain the port of the
+ remote host in the case of a not connection-oriented AF_INET or AF_INET6 socket.
+ </para>
+ </refsect1>
+
+ <refsect1 role="parameters">
+ &reftitle.parameters;
+ <para>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>socket</parameter></term>
+ <listitem>
+ <para>
+ The <parameter>socket</parameter> must be a socket resource previously created with socket_create().
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><parameter>buf</parameter></term>
+ <listitem>
+ <para>
+ The data received will be fetched to the variable specified with <parameter>buf</parameter>.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><parameter>len</parameter></term>
+ <listitem>
+ <para>
+ Up to <parameter>len</parameter> bytes will be fetched from remote host.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><parameter>flags</parameter></term>
+ <listitem>
+ <para>
+ The following table contains the different flags that can be set using the
+ <parameter>flags</parameter> parameter. Use the OR logic operator to use more
+ than one flag.
+ </para>
+
+ <table>
+ <title>Available flags</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Flag</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>MSG_OOB</entry>
+ <entry>
+ Receive out-of-band data.
+ </entry>
+ </row>
+ <row>
+ <entry>MSG_PEEK</entry>
+ <entry>
+ Receive data from the beginning of the receive queue without removing
+ it from the queue.
+ </entry>
+ </row>
+ <row>
+ <entry>MSG_WAITALL</entry>
+ <entry>
+ Block until at least <parameter>len</parameter> are received. However,
+ if a signal is caught or the remote host disconnects, the function
+ may return less data.
+ </entry>
+ </row>
+ <row>
+ <entry>MSG_DONTWAIT</entry>
+ <entry>
+ With this flag set, the function returns even if it would normally have
+ blocked.
+ </entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><parameter>name</parameter></term>
+ <listitem>
+ <para>
+ If the socket is of AF_UNIX type, <parameter>name</parameter> is the path to the
+ file. Else, in the case of non-connection oriented socket <parameter>name</parameter>
+ is the IP address of the remote host and &null if the socket is connection oriented.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><parameter>port</parameter></term>
+ <listitem>
+ <para>
+ This argument only applies to AF_INET and AF_INET6 sockets and specifies the
+ remote port from which the data is received. If the socket is connection
+ oriented, <parameter>port</parameter> will be &null.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ </variablelist>
+ </para>
+ </refsect1>
+
+ <refsect1 role="returnvalues">
+ &reftitle.returnvalues;
+ <para>
+ <function>socket_recvfrom</function> returns the number of bytes received
+ or -1 if there was an error. The actual error code can be retrieved by
+ calling <function>socket_last_error</function>. This error code may be passed
+ to <function>socket_strerror</function> to get a textual explanation of the
+ error.
+ </para>
+ </refsect1>
+
+ <refsect1 role="examples">
+ &reftitle.examples;
+ <para>
+ <example>
+ <title><function>socket_recvfrom</function> example</title>
+ <programlisting role="php">
+<![CDATA[
+<?php
+error_reporting(E_ALL | E_STRICT);
+
+$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
+socket_connect($socket, "127.0.0.1", 1223);
+
+$Ip = "";
+socket_recvfrom($socket, $buf, 12, 0, $Ip, $Port);
+
+echo "Received data: $buf";
+?>
+]]>
+ </programlisting>
+ <para>
+ This will example will initiate a TCP connection to 127.0.0.1 on port 1223
+ and print at most 12 characters received from the remote host or block
+ until no data is received.
+ </para>
+ </example>
</para>
</refsect1>

@@ -46,6 +209,17 @@
</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
Sponsored Links







Also available: Server administration forum archive | Web Design forum archive | Software forum archive | Hardware reviews archive

Copyright 2008 codecomments.com