(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.
  
socketUn 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().
      
optnameLas opciones de socket dispobibles son las mismas que las de la función socket_get_option().
optvalEl 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;
}
?>