Устанавливает неблокирующий режим для файлового дескриптора fd

# socket_set_nonblock

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

socket_set_nonblock — Устанавливает неблокирующий режим для файлового дескриптора fd

### Описание

function socket_set_nonblock(Socket `$socket`): bool

Функция 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() немедленно вернёт ошибку, если только именно в этот момент нету ожидающего соединения.

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

- socket_set_block() - Устанавливает блокирующий режим на сокете
- socket_set_option() - Устанавливает опции для сокета
- stream_set_blocking() - Устанавливает блокирующий или неблокирующий режим для потока

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open