Funciones de Socket
PHP Manual

socket_get_option

(PHP 4 >= 4.3.0, PHP 5)

socket_get_optionObtiene las opciones de socket para el socket

Descripción

mixed socket_get_option ( resource $socket , int $level , int $optname )

La función socket_get_option() recupera el valor de la opción especificada por el parámetro optname para el socket especificado.

Parámetros

socket

Un recurso socket válido creado con socket_create() o socket_accept().

level

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

optname
Opciones de Socket Disponibles
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

Valores devueltos

Devuelve el valor de la opción dada, o FALSE en caso de error.

Ejemplos

Example #1 Ejemplo de socket_set_option()

<?php
$socket 
socket_create_listen(1223);

$linger = array('l_linger' => 1'l_onoff' => 1);
socket_set_option($socketSOL_SOCKETSO_LINGER$linger);

var_dump(socket_get_option($socketSOL_SOCKETSO_REUSEADDR));
?>

Historial de cambios

Versión Descripción
4.3.0 Se cambió el nombre de esta función. Se solía llamar socket_getopt().


Funciones de Socket
PHP Manual