socket_set_option
(PHP 4 >= 4.3.0, PHP 5)
socket_set_option — Establece las opciones de socket para el socket
Descripción
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.
Parámetros
-
socket -
Un recurso socket válido creado con socket_create() o socket_accept().
-
level -
El parámetro
levelespecifica 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ámetroleveldeSOL_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.
Valores devueltos
Devuelve TRUE en caso de éxito o FALSE en caso de error.
Ejemplos
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;
}
?>