(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)
socket_get_option — Lee las opciones del socket
socket_get_option() recupera el valor de la opción
especificada por el argumento option
para el socket
especificado por el argumento socket
.
socket
Una instancia de Socket creada por socket_create() o socket_accept().
level
El argumento level
especifica la capa de
protocolo de la opción. Por ejemplo, para conocer las opciones de
la capa socket, el valor SOL_SOCKET
del argumento
level
será utilizado. Otros niveles, como
TCP
, pueden ser utilizados especificando el
número del protocolo de esta capa. Los números de protocolos
pueden ser encontrados utilizando la función
getprotobyname().
option
Opción | Descripción | Tipo |
---|---|---|
SO_DEBUG |
Reporta si las informaciones de depuración son registradas o no. | int |
SO_BROADCAST |
Reporta si la transmisión de anuncios globales es soportada o no. | int |
SO_REUSEADDR |
Indica si las direcciones locales pueden ser reutilizadas o no. | int |
SO_REUSEPORT |
Indica si los puertos locales pueden ser reutilizados. | int |
SO_KEEPALIVE |
Reporta si las conexiones son persistentes con transmisiones periódicas de mensajes o no. Si el socket conectado falla en respuesta a estos mensajes, la conexión es interrumpida y el proceso escribirá sobre este socket una notificación con un señal SIGPIPE. | int |
SO_LINGER |
Reporta si el socket Si l_onoff no vale cero y que l_linger vale cero, todos los datos que no han sido enviados aún serán cancelados y RST (reinicialización) será enviado en el caso de una conexión orientada socket. Por otro lado, si l_onoff no vale cero y l_linger no vale cero, socket_close() bloqueará hasta que los datos no enviados sean enviados o durante el tiempo especificado por l_linger. Si el socket es no-bloqueante, socket_close() fallará y retornará un error. |
array. El array contendrá 2 claves : l_onoff y l_linger. |
SO_OOBINLINE |
Reporta si el socket socket parte sobre datos en
línea out-of-band o no.
|
int |
SO_SNDBUF |
Reporta las informaciones sobre el tamaño del buffer enviado. | int |
SO_RCVBUF |
Reporta las informaciones sobre el tamaño del buffer recibido. | int |
SO_ERROR |
Reporta las informaciones sobre el estado de error y lo vacía. | int (no puede ser definido por la función socket_set_option()) |
SO_TYPE |
Reporta el tipo del socket socket (ej.
SOCK_STREAM ).
|
int (no puede ser definido por la función socket_set_option()) |
SO_DONTROUTE |
Reporta si los mensajes salientes desvían los equipos estándar de encaminamiento. | int |
SO_RCVLOWAT |
Reporta el número mínimo de octetos al proceso para las operaciones
entrantes sobre el socket socket .
|
int |
SO_RCVTIMEO |
Reporta el valor del tiempo límite para las operaciones entrantes. | array. El array contendrá 2 claves : sec que es la parte representando los segundos del valor del tiempo de espera y usec que es la parte representando los microsegundos. |
SO_SNDTIMEO |
Reporta el valor del tiempo límite especificando el tiempo máximo de ejecución para las funciones salientes bloqueantes porque el comando de flujo impide que los datos sean enviados. | array. El array contendrá 2 claves : sec que es la parte representando los segundos del valor del tiempo de espera y usec que es la parte representando los microsegundos. |
SO_SNDLOWAT |
Reporta el número mínimo de octetos al proceso para las operaciones
salientes sobre el socket socket .
|
int |
TCP_NODELAY |
Indica si el algoritmo Nagle TCP está desactivado. | int |
MCAST_JOIN_GROUP |
Se une a un grupo multicast. |
Un array con una clave "group" ,
especificando un string con las direcciones multicast IPv4 o IPv6
y una clave "interface" , especificando ya sea un
número de interfaz (de tipo int), ya sea un
string con el nombre de la interfaz, como
"eth0" .
0 puede ser especificado para indicar que la interfaz
debe ser seleccionada utilizando las reglas de encaminamiento (no puede ser
utilizado más que con la función socket_set_option()).
|
MCAST_LEAVE_GROUP |
Abandona un grupo multicast. |
Un array. Ver la constante MCAST_JOIN_GROUP
para más informaciones (no puede ser utilizado más que con la función
socket_set_option()).
|
MCAST_BLOCK_SOURCE |
Bloquea paquetes llegando desde una fuente específica hacia un grupo multicast específico, que habrá debido ser unido anteriormente. |
Un array conteniendo las mismas claves que las de la constante
MCAST_JOIN_GROUP , con una clave adicional
source , ligado a un string especificando
una dirección IPv4 o IPv6 de la fuente a bloquear
(no puede ser utilizado más que con la función
socket_set_option()).
|
MCAST_UNBLOCK_SOURCE |
Desbloquea (recomienza a recibir) los paquetes llegando desde una fuente específica hacia un grupo multicast específico, que habrá debido ser unido anteriormente. |
Un array en el mismo formato que el de la constante
MCAST_BLOCK_SOURCE
(no puede ser utilizado más que con la función
socket_set_option()).
|
MCAST_JOIN_SOURCE_GROUP |
Recibe paquetes destinados a un grupo multicast específico cuya dirección fuente corresponde a un valor específico. |
Un array en el mismo formato que el de la constante
MCAST_BLOCK_SOURCE
(no puede ser utilizado más que con la función
socket_set_option()).
|
MCAST_LEAVE_SOURCE_GROUP |
Deja de recibir paquetes destinados a un grupo multicast específico cuya dirección fuente corresponde a un valor específico. |
Un array en el mismo formato que el de la constante
MCAST_BLOCK_SOURCE
(no puede ser utilizado más que con la función
socket_set_option()).
|
IP_MULTICAST_IF |
La interfaz de salida para los paquetes multicast IPv4. |
Ya sea un entero especificando el número de la interfaz, ya sea un
string representando el nombre de la interfaz, por ejemplo,
eth0 . El valor 0
puede ser utilizado para indicar la tabla de encaminamiento a utilizar
en la selección de la interfaz. La función
socket_get_option() retorna un índice de interfaz.
Note que, a diferencia de la API C, esta opción no toma
como argumento una dirección IP. Esto elimina la diferencia de interfaz
entre las constantes IP_MULTICAST_IF y
IPV6_MULTICAST_IF .
|
IPV6_MULTICAST_IF |
La interfaz de salida para los paquetes multicast IPv6. |
Idéntico a la constante IP_MULTICAST_IF .
|
IP_MULTICAST_LOOP |
La política de la bucla local multicast para los paquetes IPv4 activa o desactiva el buclaje de las multidifusiones salientes, que deben haber sido unidas anteriormente. El efecto difiere sin embargo según que se aplique a Unix o a Windows, el primero siendo sobre el camino de recepción mientras que el segundo sobre el camino de envío. |
Un entero (ya sea 0 , ya sea 1 ).
Para la función socket_set_option(),
cualquier valor será aceptado y será convertido
en un booleano siguiendo las reglas habituales de PHP.
|
IPV6_MULTICAST_LOOP |
Idéntico a la constante IP_MULTICAST_LOOP ,
pero para el IPv6.
|
Un entero. Ver la constante IP_MULTICAST_LOOP .
|
IP_MULTICAST_TTL |
La duración de vida de los paquetes salientes multicast IPv4. Esto debe ser un valor comprendido entre 0 (no salir de la interfaz) y 255. Por omisión, el valor es a 1 (solo la red local es alcanzada). | Un entero entre 0 y 255. |
IPV6_MULTICAST_HOPS |
Idéntico a la constante IP_MULTICAST_TTL ,
pero para los paquetes IPv6. El valor -1 es igualmente aceptado,
significando que la ruta por omisión debe ser utilizada.
|
Un entero comprendido entre -1 y 255. |
SO_MARK |
Define un identificador sobre el socket para el propósito de filtrar los paquetes sobre Linux. | int |
SO_ACCEPTFILTER |
Añade un filtro de aceptación sobre el socket escuchado (FreeBSD/NetBSD). Un módulo kernel de filtro de aceptación debe ser cargado primero sobre FreeBSD (ej. accf_http). | string nombre del filtro (longitud 15 max). |
SO_USER_COOKIE |
Define un identificador sobre el socket para el propósito de filtrar los paquetes sobre FreeBSD. | int |
SO_RTABLE |
Define un identificador sobre el socket para el propósito de filtrar los paquetes sobre OpenBSD. | int |
SO_DONTTRUNC |
Conserva los datos no leídos. | int |
SO_WANTMORE |
Proporciona un índice cuando más datos están listos. | int |
TCP_DEFER_ACCEPT |
No notificar un socket que escucha hasta que los datos no estén listos. | int |
SO_INCOMING_CPU |
Recupera/Define la afinidad del cpu para un socket. | int |
SO_MEMINFO |
Recupera toda la meminfo de un socket. | int |
SO_BPF_EXTENSIONS |
Recupera las extensiones BPF soportadas por el kernel para adjuntar a un socket. | int |
SO_SETFIB |
Define la tabla de encaminamiento (FIB) de un socket. (FreeBSD solamente) | int |
SOL_FILTER |
Filtros atribuidos a un socket. (Solaris/Illumos solamente) | int |
TCP_KEEPCNT |
Define el número máximo de sondas keepalive TCP debería enviar antes de soltar la conexión. | int |
TCP_KEEPIDLE |
Define el tiempo que la conexión debe permanecer inactiva. | int |
TCP_KEEPINTVL |
Define el tiempo entre las sondas keepalive individuales. | int |
TCP_KEEPALIVE |
Define el tiempo que la conexión debe permanecer inactiva. (macOS solamente) | int |
TCP_NOTSENT_LOWAT |
Define el número límite de datos no enviados en la cola de escritura por el flujo de socket. (Linux solamente) | int |
Retorna el valor de la opción proporcionada, o false
en caso de error.
Versión | Descripción |
---|---|
8.0.0 |
socket is a Socket instance now;
previously, it was a resource.
|
Ejemplo #1 Ejemplo con socket_get_option()
<?php
$socket = socket_create_listen(1223);
$linger = array('l_linger' => 1, 'l_onoff' => 1);
socket_set_option($socket, SOL_SOCKET, SO_LINGER, $linger);
var_dump(socket_get_option($socket, SOL_SOCKET, SO_REUSEADDR));
?>