Description
string 
stream_socket_recvfrom ( resource socket, int length [, int flags [, string &address]] )
     The function stream_socket_recvfrom() accepts
     data from a remote socket up to length bytes.
     If address is provided it will be populated with
     the address of the remote socket.
    
     The value of flags can be any combination
     of the following:
     
Table 1. possible values for flags
| STREAM_OOB | Process OOB (out-of-band) data. | 
| STREAM_PEEK | Retrieve data from the socket, but do not consume the buffer.
          Subsequent calls to fread() or 
          stream_socket_recvfrom() will see
          the same data. | 
| Example 1. stream_socket_recvfrom() Example | 
<?php/* Open a server socket to port 1234 on localhost */
 $server = stream_socket_server('tcp://127.0.0.1:1234');
 
 /* Accept a connection */
 $socket = stream_socket_accept($server);
 
 /* Grab a packet (1500 is a typical MTU size) of OOB data */
 echo "Received Out-Of-Band: '" . stream_socket_recvfrom($socket, 1500, STREAM_OOB) . "'\n";
 
 /* Take a peek at the normal in-band data, but don't comsume it. */
 echo "Data: '" . stream_socket_recvfrom($socket, 1500, STREAM_PEEK) . "'\n";
 
 /* Get the exact same packet again, but remove it from the buffer this time. */
 echo "Data: '" . stream_socket_recvfrom($socket, 1500) . "'\n";
 
 /* Close it up */
 fclose($socket);
 fclose($server);
 ?>
 | 
 | 
Note: 
      If a message received is longer than the length
      parameter, excess bytes may be discarded depending on the type of socket
      the message is received from (such as UDP).
     
Note: 
      Calls to stream_socket_recvfrom() on socket-based
      streams, after calls to buffer-based stream functions (like
      fread() or stream_get_line()) read
      data directly from the socket and bypass the stream buffer.
      
     See also 
     stream_socket_sendto(),
     stream_socket_client(), and
     stream_socket_server().