Beware, when using this function within a loop (i.e. a demon with a socket). The socket_accept(), for example, emits a warning each time there is no incoming connection available to be read. My php error log file got huge in a matter of seconds, eventually crashing the server.
Of course, i used the @ before the function to take care of that problem.
[EDITOR: One can (and should) use socket_select to detect a new connection on a socket (it's a "readable" event)]socket_set_nonblock
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
socket_set_nonblock
Референца за `function.socket-set-nonblock.php` со подобрена типографија и навигација.
socket_set_nonblock
(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)
socket_set_nonblock — Поставува неблокирачки режим за дескрипторот на датотеката fd
= NULL
На socket_set_nonblock() функцијата поставува
O_NONBLOCK знаме на сокетот специфициран од socket parameter.
Кога операција (на пр. примање, испраќање, поврзување, прифаќање, ...) се изведува на неблокирачки сокет, скриптата нема да ја паузира својата извршување додека не добие сигнал или не може да ја изврши операцијата. Наместо тоа, ако операцијата резултира со блокирање, повиканата функција ќе откаже.
Вратени вредности
Патеката до PHP скриптата што треба да се провери. true на успех или false при неуспех.
Примери
Пример #1 socket_set_nonblock() example
<?php
$socket = socket_create_listen(1223);
socket_set_nonblock($socket);
socket_accept($socket);
?>
Овој пример создава слушачки сокет на сите интерфејси на портата 1223 и го поставува сокетот на O_NONBLOCK mode.
socket_accept() веднаш ќе откаже освен ако нема чекачка врска токму во овој момент.
Види Исто така
- socket_set_block() - Поставува блокирачки режим на сокет
- socket_set_option() - Поставува опции за сокетот
- stream_set_blocking() - Отворете постојана интернет или Unix доменска врска со сокет