socket_set_option

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

socket_set_optionModifica las opciones de socket

Descripción

socket_set_option(
    Socket $socket,
    int $level,
    int $option,
    array|string|int $value
): bool

socket_set_option() configura la opción especificada por option, al nivel de protocolo level al valor apuntado por value para el socket especificado por socket.

Parámetros

socket

Una instancia de Socket creada por socket_create() o socket_accept().

level

El parámetro level especifica la capa del protocolo de la opción. Por ejemplo, para modificar una opción de la capa socket, se utiliza un nivel igual a SOL_SOCKET. Otros niveles, como TCP, pueden ser utilizados especificando un número de protocolo para este nivel. Los números de protocolos pueden ser utilizados utilizando la función getprotobyname().

option

Las opciones disponibles son las mismas que para la función socket_get_option().

value

El valor de la opción.

Valores devueltos

Devuelve true en caso de éxito o false en caso de error.

Historial de cambios

Versión Descripción
8.0.0 socket is a Socket instance now; previously, it was a resource.

Ejemplos

Ejemplo #1 Ejemplo con socket_set_option()

<?php
$socket
= socket_create(AF_INET, SOCK_STREAM, SOL_TCP);

if (!
is_resource($socket)) {
echo
'No es posible crear el socket: '. socket_strerror(socket_last_error()) . PHP_EOL;
}

if (!
socket_set_option($socket, SOL_SOCKET, SO_REUSEADDR, 1)) {
echo
'No es posible definir la opción del socket: '. socket_strerror(socket_last_error()) . PHP_EOL;
}

if (!
socket_bind($socket, '127.0.0.1', 1223)) {
echo
'No es posible vincular el socket: '. socket_strerror(socket_last_error()) . PHP_EOL;
}

$rval = socket_get_option($socket, SOL_SOCKET, SO_REUSEADDR);

if (
$rval === false) {
echo
'No es posible recuperar la opción del socket: '. socket_strerror(socket_last_error()) . PHP_EOL;
} else if (
$rval !== 0) {
echo
'SO_REUSEADDR está definido en el socket!' . PHP_EOL;
}
?>

Ver también