(PHP 4 >= 4.1.0, PHP 5, PHP 7)
socket_recvfrom — Recibe información desde un socket que esté o no orientado a conexión
$socket
   , string &$buf
   , int $len
   , int $flags
   , string &$name
   [, int &$port
  ] ) : int
   La función socket_recvfrom() recibe
   len bytes de información en buf desde
   name en el puerto port (si el
   socket no es del tipo AF_UNIX) usando
   socket. socket_recvfrom() se puede
   usar para reunir información tanto desde socket conectados como de no conectados.
   Además, se pueden especificar una o más banderas para modificar el comportamiento de
   la función.
  
   name y port deben ser
   pasados por referencia. Si el socket no está orientado a conexión,
   name será establecido a la dirección del protocolo de internet del
   host remoto o a la ruta del socket UNIX. Si el socket está
   orientado a conxión, name es NULL. Además,
   port contendrá el puerto del host remoto en
   el caso de un socket AF_INET o
   AF_INET6 no conectado.
  
Nota: Esta función es segura binariamente.
socket
       socket debe ser un recurso socket previamente
       creado por socket_create().
      
buf
       La información recibida será recuperada a la variable especificada por
       buf.
      
len
       Se obtendrán hasta len bytes desde el host remoto.
      
flags
       El valor de flags puede ser una combinación de
       las siguientes banderas, unidas con el operador binario OR
       (|).
      
| Bandera | Descripción | 
|---|---|
| MSG_OOB | Procesar información fuera de banda. | 
| MSG_PEEK | Recibir informaicón desde el inicio de la cola recibida sin eliminarla de la cola. | 
| MSG_WAITALL | Bloquea hasta que al menos se reciba lenbytes.
           Sin embargo, si se captura una señal o el host remoto se desconecta, la
           función puede devolver menos información. | 
| MSG_DONTWAIT | Con esta bandera establecida, la función devuelve incluso si normalmente habría bloqueado. | 
name
       Si el socket es de tipo AF_UNIX,
       name es la ruta del archivo. Por lo demás, para
       sockets no conectados, name es la dirección IP del
       host remoto, o NULL si el socket está orientado a conexion.
      
port
       Este argumento sólo se aplica a sockets AF_INET y
       AF_INET6, y especifica el puerto remoto
       desde el que la información es recibida. Si el socket está orientado a conexión,
       port será NULL.
      
   socket_recvfrom() devuelve el número de bytes recibidos,
   o FALSE si hubo un error. El código de error real se puede recuperar
   llamando a socket_last_error(). Este código de error se puede
   pasar a socket_strerror() para obtener una explicación textual
   del error.
  
Ejemplo #1 Un ejemplo de socket_recvfrom()
<?php
error_reporting(E_ALL | E_STRICT);
$socket = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);
socket_bind($socket, '127.0.0.1', 1223);
$from = '';
$port = 0;
socket_recvfrom($socket, $buf, 12, 0, $from, $port);
echo "Se recibió $buf desde la dirección remota $from y el puerto remoto $port" . PHP_EOL;
?>
Este ejemplo iniciará un socket UDP en el puerto 1223 de 127.0.0.1 e imprimirá al menos 12 caracteres recibidos desde un host remoto.