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().