(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)
socket_set_nonblock — Устанавливает неблокирующий режим для файлового дескриптора fd
Функция socket_set_nonblock() устанавливает флаг
O_NONBLOCK
на сокете, который указали в параметре
socket
.
Когда операция (например, получение, отправка, соединение, принятие соединения,… выполняется на неблокирующем сокете, скрипт не будет приостанавливать исполнение до получения сигнала или возможности выполнить операцию. Если выполняемая операция должна привести к блокированию выполнения скрипта, то вместо этого вызываемая функция вернёт ошибку.
socket
Экземпляр класса Socket, который создали функцией socket_create() или socket_accept().
Функция возвращает true
, если выполнилась успешно, или false
, если возникла ошибка.
Версия | Описание |
---|---|
8.0.0 |
Теперь параметр socket ожидает экземпляр класса Socket;
раньше параметр ожидал ресурс (resource).
|
Пример #1 Пример использования функции socket_set_nonblock()
<?php
$socket = socket_create_listen(1223);
socket_set_nonblock($socket);
socket_accept($socket);
?>
Пример создаёт слушающий сокет на всех интерфейсах на порту 1223
и устанавливает сокет в режим O_NONBLOCK
.
Функция socket_accept() немедленно вернёт ошибку,
если только именно в этот момент нету ожидающего соединения.