PHP Conference Nagoya 2025

socket_set_block

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

socket_set_blockSetzt einen Socket auf den blockieren-Modus

Beschreibung

socket_set_block(Socket $socket): bool

Die Funktion socket_set_block() entfernt das Flag O_NONBLOCK vom Socket socket.

Wenn eine Operation (etwa empfangen, senden, verbinden, akzeptieren, ...) an einem blockierenden Socket ausgeführt wird, wird die Ausführung des Skripts so lange unterbrochen, bis es ein Signal erhält oder die Operation ausführen kann.

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_block()-Beispiel

<?php
$socket
= socket_create_listen(1223);
socket_set_block($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_BLOCK-Modus versetzt wird. socket_accept() wartet auf eine Verbindung, um sie zu akzeptieren.

Siehe auch

add a note

User Contributed Notes 1 note

up
2
laacz at laacz dot lv
9 years ago
Besides true and false socket_set_block might return NULL if you're not too careful. That would happen when passing non socket resource as first parameter.

E.g. socket_set_block(false)) would return NULL and emit warning that you're trying to do things with non-socket.
To Top