(PHP 4 >= 4.3.0, PHP 5)
socket_get_option — Obtiene las opciones de socket para el socket
La función socket_get_option() recupera el valor de la opción especificada por el parámetro optname para el socket especificado.
Un recurso socket válido creado con socket_create() o socket_accept().
El parámetro level especifica el nivel de protcolo en el que reside la opción. Por ejemplo, para recuperar las opciones al nivel de socket se usaría un parámetro level de SOL_SOCKET. Se puden usar otros niveles como TCP especificando el número de protocolo de ese nivel. Los números de protocolo se pueden averiguar usando la función getprotobyname().
Opción | Descripción | Tipo |
---|---|---|
SO_DEBUG | Informa si la información de depuración está siendo registrada. | int |
SO_BROADCAST | Informa si la transmisión de mensajes de emisión está soportada. | int |
SO_REUSEADDR | Informa si las direcciones locales pueden ser rechazadas. | int |
SO_KEEPALIVE | Informa si las conexiones se mantienen activas con transmisiones periódicas de mensajes. Si el socket conectado falla al responder a estos mensajes, la conexión es interrumpida y los procesos que escriben en ese socket son notificados con una señal SIGPIPE. | int |
SO_LINGER |
Informa si el socket perdura en socket_close() si la información está presente. Por omisión, cuando el socket se cierra, se intenta enviar toda la información no enviada. En el caso de un socket orientado a conexión, socket_close() esperará a su par para admitir la información. Si l_onoff no es cero y l_linger es cero, toda la información no enviada será desechada y se envía RST (reinicio) al par en el caso de un socker orientado a conexión. Por otro lado, si l_onoff no es cero y l_linger no es cero, socket_close() bloqueará hasta que toda la información sea enviada o transcurra el tiempo especificado en l_linger. Si el socket es de no-bloqueo, socket_close() fallará y devolverá un error. |
array. La matriz contendrá dos claves: l_onoff y l_linger. |
SO_OOBINLINE | Informa si el socket deja información fuera de banda en línea. | int |
SO_SNDBUF | Informa del tamaño del buffer de envío. | int |
SO_RCVBUF | Informa del tamaño del buffer de recepción. | int |
SO_ERROR | Da información sobre el estado de error y lo limpia. | int (cannot be set by socket_set_option()) |
SO_TYPE | Informa del tipo socket (p.ej. SOCK_STREAM). | int (no puede ser establecido mediante socket_set_option()) |
SO_DONTROUTE | Informa si los mensajes salientes se desvían de los mecanismos de ruta estándar. | int |
SO_RCVLOWAT | Informa del número mínimo de bytes a procesar para operaciones de entrada del socket. | int |
SO_RCVTIMEO | Informa del valor del tiempo límite para operaciones de entrada. | array. La matriz contendrá dos claves: sec que es la parte de segundos del valor del tiempo límite y usec que es la parte de microsegundos del valor del tiempo límite. |
SO_SNDTIMEO | Informa del valor del tiempo límite especificando la cantidad de tiempo que una función de salida bloquea porque el control de flujo evita el envío de información. | array. La matriz contendrá dos claves: sec que es la parte de segundos del valor del tiempo límite y usec que es la parte de microsegundos del valor del tiempo límite. |
SO_SNDLOWAT | Informa del número mínimo de bytes a procesar por operaciones de salida del socket. | int |
TCP_NODELAY | Informa si el algoritmo Nagle TCP está deshabilitado. | int |
Devuelve el valor de la opción dada, o FALSE en caso de error.
Example #1 Ejemplo de socket_set_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));
?>
Versión | Descripción |
---|---|
4.3.0 | Se cambió el nombre de esta función. Se solía llamar socket_getopt(). |