socket_set_option
(PHP 4 >= 4.3.0, PHP 5, PHP 7)
socket_set_option — Устанавливает опции для сокета
Описание
Функция 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_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() - Получает опции потока для сокета