(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)
socket_set_option — Establece las opciones de socket para el socket
La función socket_set_option() establece la opción especificada por el parámetro optname
, al nivel (level
) del protocolo especificado, al valor apuntado por el parámetro optval
para el socket
.
socket
Un recurso socket válido creado con socket_create() o socket_accept().
level
El parámetro level
especifica el nivel de protocolo en el que reside la opción. Por ejemplo, para recuperar opciones a nivel de socket, se debería usar un parámetro level
de SOL_SOCKET
. Otros niveles, como TCP, se pueden usar para especificar el número de protocolo de ese nivel. Los números de protocolo se pueden encontrar usando la función getprotobyname().
optname
Las opciones de socket dispobibles son las mismas que las de la función socket_get_option().
optval
El valor opcional.
Ejemplo #1 Un ejemplo de socket_set_option()
<?php
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if (!is_resource($socket)) {
echo 'No se pudo crear elsocket: '. socket_strerror(socket_last_error()) . PHP_EOL;
}
if (!socket_set_option($socket, SOL_SOCKET, SO_REUSEADDR, 1)) {
echo 'No se pudo establecer la opción del socket: '. socket_strerror(socket_last_error()) . PHP_EOL;
}
if (!socket_bind($socket, '127.0.0.1', 1223)) {
echo 'No se pudo vincular el socket: '. socket_strerror(socket_last_error()) . PHP_EOL;
}
$rval = socket_get_option($socket, SOL_SOCKET, SO_REUSEADDR);
if ($rval === false) {
echo 'No se pudo obtener la opción del option: '. socket_strerror(socket_last_error()) . PHP_EOL;
} else if ($rval !== 0) {
echo 'SO_REUSEADDR está establecido en el socket !' . PHP_EOL;
}
?>