socket_set_option

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

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

Описание

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

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

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

socket

Экземпляр Socket, созданный при помощи функции socket_create() или socket_accept().

level

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

option

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

value

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

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

Возвращает true в случае успешного выполнения или false, если возникла ошибка.

Список изменений

Версия Описание
8.0.0 socket теперь экземпляр класса Socket; ранее был ресурсом (resource).

Примеры

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

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

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

if (!
socket_set_option($socket, SOL_SOCKET, SO_REUSEADDR, 1)) {
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;
}
?>

Смотрите также

  • socket_create() - Создаёт сокет (конечную точку для обмена информацией)
  • socket_bind() - Привязывает имя к сокету
  • socket_strerror() - Возвращает строку, описывающую ошибку сокета
  • socket_last_error() - Возвращает последнюю ошибку на сокете
  • socket_get_option() - Получает опции потока для сокета