Устанавливает опции для сокета


(PHP 4 >= 4.3.0, PHP 5)

socket_set_optionУстанавливает опции для сокета

Описание

bool socket_set_option ( resource $socket , int $level , int $optname , mixed $optval )

Функция socket_set_option() устанавливает опцию указанную в параметре optname, на уровне протокола level, в значение, указанное параметром optval для сокета socket.

Список параметров

socket

Действующий ресурс сокета, созданный при помощи функции socket_create() или socket_accept().

level

Параметр level указывает уровень протокола, на котором используется опция. Например, чтобы установить опции на уровне сокета, параметр level должен быть установлен в SOL_SOCKET. Другие уровни, такие как TCP, можно использовать, указав номер протокола этого уровня. Номер протоколов можно найти с помощью функции getprotobyname().

optname

Возможные опции для сокета те же самые, как и для функции socket_get_option().

optval

Значение опции.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования socket_set_option()

<?php
$socket 
socket_create(AF_INETSOCK_STREAMSOL_TCP);

if (!
is_resource($socket)) {
    echo 
'Не могу создать сокет: 'socket_strerror(socket_last_error()) . PHP_EOL;
}

if (!
socket_set_option($socketSOL_SOCKETSO_REUSEADDR1)) {
    echo 
'Не могу установить опцию на сокете: . socket_strerror(socket_last_error()) . PHP_EOL;
}

if (!socket_bind($socket, '
127.0.0.1', 1223)) {
    echo '
Не могу привязать сокет'. socket_strerror(socket_last_error()) . PHP_EOL;
}

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

if ($rval === false) {
    echo '
Не могу получить опцию сокета'. socket_strerror(socket_last_error()) . PHP_EOL;
} else if ($rval !== 0) {
    echo '
Опция SO_REUSEADDR установлена на сокете!' . PHP_EOL;
}
?>