array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'ru', ), 'this' => array ( 0 => 'function.socket-set-option.php', 1 => 'socket_set_option', ), 'up' => array ( 0 => 'ref.sockets.php', 1 => 'Функции сокета', ), 'prev' => array ( 0 => 'function.socket-set-nonblock.php', 1 => 'socket_set_nonblock', ), 'next' => array ( 0 => 'function.socket-setopt.php', 1 => 'socket_setopt', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'ru', 'path' => 'reference/sockets/functions/socket-set-option.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)
socket_set_option — Устанавливает опции для сокета
Функция 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;
}
?>