Du bist hier: Tips » Scripte » PHP
PHP
Referenzliste

socket_recvfrom

Socket-Funktionen

    Befehl:
int socket_recvfrom ( resource $socket , string &$buf , int $len , int $flags , string &$name [, int &$port ] )


    Parameter-Liste:
NameBeschreibung
socketEin gültiger Socket-Deskriptor, der von socket_create() oder socket_accept() erzeugt wurde.
bufEmpfangene Daten werden in die Variable geschrieben, die durch buf spezifiziert ist. Tritt ein Fehler auf, wird die Verbindung zurückgesetzt oder, wenn keine Daten verfügbar sind, wird buf auf NULL gesetzt.
lenMaximal len Bytes werden von dem entfernten System abgerufen.
flagsDer Wert von flags kann jede beliebige Kombination der folgenden Flags sein, verknüpft mit dem binären ODER (|) Operator.
Mögliche Werte von flags
FlagBeschreibung
MSG_OOBVerarbeite bandexterne (out-of-band) Daten.
MSG_PEEKLies Daten ab Anfang der Empfangs-Warteschlange, ohne die Daten aus der Warteschlange zu löschen.
MSG_WAITALLBlockiere so lange, bis mindestens len Daten gelesen wurden. Wenn jedoch ein Signal empfangen wurde oder der entfernte Host die Verbindung beendet, kann die Funktion auch weniger Daten zurückgeben.
MSG_DONTWAITWenn dieses Flag gesetzt ist, kehrt die Funktion zurück, auch wenn sie normalerweise blockieren würde.
nameWenn der Socket vom Typ AF_UNIX ist, enthält name den Pfad zu einer Datei. Anderenfalls, bei nicht verbundenen Sockets, enthält name die IP-Adresse des entfernten Hosts oder NULL, falls der Socket verbindungsorientiert ist.
portDieses Argument gilt nur für Sockets vom Typ AF_INET und AF_INET6 und gibt den entfernten Port an, über den Daten empfangen werden. Falls der Socket verbindungsorientiert ist, ist port NULL.

    Rückgabewerte:
socket_recvfrom() gibt die Anzahl der empfangenen Bytes zurück oder FALSE, falls ein Fehler auftrat. Der aktuelle Fehlercode kann mit socket_last_error() abgefragt werden. Dieser Fehlercode kann an die Funktion socket_strerror() übergeben werden, um eine textuelle Beschreibung des Fehlers zu erhalten.

    Beschreibung:
Die Funktion socket_recvfrom() empfängt über den Socket socket len Bytes von name über den Port port (falls der Socket nicht vom Typ AF_UNIX ist) und liest sie in den Puffer buf ein. socket_recvfrom() kann dazu verwendet werden, um Daten sowohl von verbundenen als auch unverbundenen Sockets zu lesen. Ausserdem können ein oder mehrere Flags gesetzt werden, um das Verhalten dieser Funktion zu beeinflussen.

Die Parameter name und port müsssen als Referenz übergeben werden. Wenn der Socket verbindungslos ist, wird name auf die Internet-Protokolladresse des entfernten Host oder auf den Pfad zum UNIX-Socket gesetzt. Ist der Socket verbindungsorientiert, ist name NULL. Zusätzlich enthält der Parameter port den Port des entfernten Host, falls es sich um einen nicht verbundenen AF_INET oder AF_INET6 Socket handelt.


    Aktiv in Version:
(PHP 4 >= 4.1.0, PHP 5, PHP 7)

    Siehe auch:
Empfängt Daten von einem verbundenen Socket
 
Sendet Daten an einen verbundenen Socket
 
Sendet eine Nachricht an einen Socket, egal ob dieser verbunden ist oder nicht
 
Erzeugt einen Socket (Endpunkt für die Kommunikation)
 

socket_recvfrom() - Beispiel:


Eingabe:
<?PHP
error_reporting(E_ALL | E_STRICT);

$socket = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);
socket_bind($socket, '127.0.0.1', 1223);

$from = '';
$port = 0;
socket_recvfrom($socket, $buf, 12, 0, $from, $port);

echo "$buf von entfernter Adresse $from über den entfernten Port $port empfangen." . PHP_EOL;
?>


Ausgabe:
Dieses Beispiel erzeugt einen UDP-Socket �ber Port 1223 des Hosts 127.0.0.1 und gibt h�chstens 12 Zeichen aus, die von einem entfernten Host empfangen wurden.

Beschreibung:
Version Beschreibung
4.3.0 socket_recvfrom() ist ab jetzt binary-safe.
Socket-Funktionen