stream_socket_recvfrom

(PHP 5)

stream_socket_recvfrom -- Recibe datos desde un socket, conectado o no

Descripción

string stream_socket_recvfrom ( resource socket, int longitud [, int banderas [, string &direccion]] )

La función stream_socket_recvfrom() acepta datos desde un socket remoto, hasta una cantidad de longitud bytes. Si se provee una direccion, ésta será definida con la dirección del socket remoto.

El valor de banderas puede ser cualquier combinación de los siguientes:

Tabla 1. valores posibles para banderas

STREAM_OOB Procesa datos OOB (out-of-band).
STREAM_PEEK Recuperar datos desde el socket, pero no consumir el búfer. Llamadas subsiguientes a fread() o stream_socket_recvfrom() verán los mismos datos.

Ejemplo 1. Ejemplo de stream_socket_recvfrom()

<?php
/* Abrir un socket de servidor en el puerto 1234 en localhost */
$servidor = stream_socket_server('tcp://127.0.0.1:1234');

/* Aceptar una conexion */
$socket = stream_socket_accept($servidor);

/* Tomar un paquete (1500 es un tamanyo tipico) de datos OOB */
echo "Recibidos Out-Of-Band: '" . stream_socket_recvfrom($socket, 1500, STREAM_OOB) . "'\n";

/* Echar un vistazo a los datos en banda normales, pero no consumirlos. */
echo "Datos: '" . stream_socket_recvfrom($socket, 1500, STREAM_PEEK) . "'\n";

/* Recibir exactamente el mismo paquete de nuevo, pero eliminarlo del
* bufer esta vez. */
echo "Datos: '" . stream_socket_recvfrom($socket, 1500) . "'\n";

/* Cerrarlo */
fclose($socket);
fclose($servidor);
?>

Nota: Si un mensaje recibido tiene una longitud mayor que el parámetro longitud, los bytes sobrantes pueden ser descartados dependiendo del tipo de socket del mensaje recibido (como UDP).

Vea también stream_socket_sendto(), stream_socket_client(), y stream_socket_server().

Hosting by: hurra.com
Generated: 2007-01-26 18:01:07