socket_set_nonblock
(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)
socket_set_nonblock — Setzt den nonblocking-Modus für den Dateideskriptor fd
Beschreibung
Die Funktion socket_set_nonblock() setzt das Flag
O_NONBLOCK
für den Socket socket
.
Wenn eine Operation (etwa empfangen, senden, verbinden, akzeptieren, ...) an einem nicht-blockierenden Socket ausgeführt wird, wird die Ausführung des Skripts so lange nicht unterbrochen, bis es ein Signal erhält oder die Operation ausgeführt ist. Wenn allerdings die Operation zu einer Blockierung führen würde, schlägt die aufgerufene Funktion fehl.
Parameter-Liste
-
socket
-
Eine Socket-Instanz, die mit socket_create() oder socket_accept() erzeugt wurde.
Rückgabewerte
Gibt bei Erfolg true
zurück. Bei einem Fehler wird false
zurückgegeben.
Changelog
Version | Beschreibung |
---|---|
8.0.0 |
socket ist nun eine
Socket-Instanz; vorher war es eine
resource.
|
Beispiele
Beispiel #1 socket_set_nonblock()-Beispiel
<?php
$socket = socket_create_listen(1223);
socket_set_nonblock($socket);
socket_accept($socket);
?>
In diesem Beispiel wird ein Socket für alle Schnittstellen erzeugt, der
den Port 1223 abhört und der in den O_NONBLOCK
-Modus
versetzt wird. socket_accept() schlägt sofort fehl, es
sei denn, es gibt exakt in diesem Moment eine wartende Verbindung.
Siehe auch
- socket_set_block() - Setzt einen Socket auf den blockieren-Modus
- socket_set_option() - Setzt die Optionen für einen Socket
- stream_set_blocking() - Set blocking/non-blocking mode on a stream