(PHP 4 >= 4.3.0, PHP 5, PHP 7)
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.
Devuelve TRUE
en caso de éxito o FALSE
en caso de error.
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;
}
?>