stream_socket_serverCrear un socket de servidor de dominio de Internet o de Unix
&reftitle.description;
resourcestream_socket_serverstringlocal_socketinterrnostringerrstrintflagsSTREAM_SERVER_BIND | STREAM_SERVER_LISTENresourcecontext
Crea un socket de flujo o de datagrama en
local_socket.
Esta función sólo crea un socket, para empezar a aceptar conexiones
use stream_socket_accept.
&reftitle.parameters;
local_socket
El tipo de socket creado se determina por el transporte
especificado usando el formato de URL estándar: transporte://objetivo.
Para sockets de Dominio de Internet (AF_INET) como TCP y UDP,
la porción del objetivo del parámetro
remote_socket debería consistir en
un nombre de host o dirección IP seguida de dos puntos y un número de puerto. Para sockets
de dominio de Unix, la porción del objetivo apuntará
al archivo de socket del sistema de archivos.
Dependiendo del entorno, los sockets de dominio Unix pueden no estar disponibles.
Una lista de transportes disponibles se puede recuperar unsado
stream_get_transports. Véase
para una lista de transportes incluidos.
errno
Si los argumentos opcionales errno y errstr
están presentes, serán establecidos para indicar el error a nivel de sistema
ocurrido en las llamadas a nivel de sistema de socket(),
bind(), y listen(). Si
el valor devuelto en errno es
0 y la función devuelve &false;, es una indicación
de que el error ocurrió antes de la llamada a bind().
Esto es lo más probable debido a un problema de inicialización del socket.
Observe que los argumentos errno y
errstr siempre serán pasados por referencia.
errstr
Véase la descripción de errno.
flags
Campo de máscara de bits que puede ser establecido a cualquier combinación de banderas de
conexión.
Para sockets UDP, se debe usar STREAM_SERVER_BIND como
parámetro flags.
context
&reftitle.returnvalues;
Devuelve un flujo creado, o &false; si se produjo un error.
&reftitle.examples;
Usar sockets de servidor de TCP
\n";
} else {
while ($conn = stream_socket_accept($socket)) {
fwrite($conn, 'La fecha y hora actuales es ' . date('n/j/Y g:i a') . "\n");
fclose($conn);
}
fclose($socket);
}
?>
]]>
El ejemplo de abajo muestra cómo actuar como un servidor de hora que responde
a peticiones de hora como se muestra en un ejemplo de stream_socket_client.
La mayoría de los sistemas requieren acceso root para crear un socket de servidor sobre un
puerto inferor a 1024.
Usar sockets de servidor de UDP
]]>
&reftitle.notes;
&ipv6.brackets;
&reftitle.seealso;
stream_socket_clientstream_set_blockingstream_set_timeoutfgetsfgetssfwritefclosefeofLa extensión Curl