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