socket_recvfrom
(PHP 4 >= 4.1.0, PHP 5, PHP 7)
socket_recvfrom — Empfängt Daten von einem Socket, egal, ob verbindungsorientiert oder nicht
Beschreibung
$socket
, string &$buf
, int $len
, int $flags
, string &$name
[, int &$port
] ) : int
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. Außerdem
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.
Parameter-Liste
-
socket
-
socket
muss ein Socket-Deskriptor sein, der zuvor von socket_create() erzeugt wurde. -
buf
-
Die empfangenen Daten werden in die Variable
buf
eingelesen. -
len
-
Bis zu
len
Bytes werden vom entfernten Host gelesen. -
flags
-
Der Wert von
flags
kann eine beliebige Kombination der folgenden Flags sein, die mit dem binären OR (|) verknüpft werden.Mögliche Werte für flags
Flag Beschreibung MSG_OOB
Verarbeite bandexterne Daten. MSG_PEEK
Lies Daten ab Anfang der Empfangs-Warteschlange, ohne die Daten aus der Warteschlange zu löschen. MSG_WAITALL
Blockiere 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_DONTWAIT
Wenn dieses Flag gesetzt ist, kehrt die Funktion zurück, auch wenn sie normalerweise blockieren würde. -
name
-
Wenn der Socket vom Typ
AF_UNIX
ist, enthältname
den Pfad zu einer Datei. Anderenfalls, bei nicht verbundenen Sockets, enthältname
die IP-Adresse des entfernten Hosts oderNULL
, falls der Socket verbindungsorientiert ist. -
port
-
Dieses Argument gilt nur für Sockets vom Typ
AF_INET
undAF_INET6
und gibt den entfernten Port an, über den Daten empfangen werden. Falls der Socket verbindungsorientiert ist, istport
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.
Beispiele
Beispiel #1 socket_recvfrom() Beispiel
<?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;
?>
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.
Siehe auch
- socket_recv() - Empfängt Daten von einem verbundenen Socket
- socket_send() - Sendet Daten an einen verbundenen Socket
- socket_sendto() - Sendet eine Nachricht an einen Socket, egal ob dieser verbunden ist oder nicht
- socket_create() - Erzeugt einen Socket (Endpunkt für die Kommunikation)
Deutsche Übersetzung
Sie haben gebeten, diese Seite auf Deutsch zu besuchen. Momentan ist nur die Oberfläche übersetzt, aber noch nicht der gesamte Inhalt.Wenn Sie mir bei Übersetzungen helfen wollen, ist Ihr Beitrag willkommen. Alles, was Sie tun müssen, ist, sich auf der Website zu registrieren und mir eine Nachricht zu schicken, in der Sie gebeten werden, Sie der Gruppe der Übersetzer hinzuzufügen, die Ihnen die Möglichkeit gibt, die gewünschten Seiten zu übersetzen. Ein Link am Ende jeder übersetzten Seite zeigt an, dass Sie der Übersetzer sind und einen Link zu Ihrem Profil haben.
Vielen Dank im Voraus.
Dokument erstellt 30/01/2003, zuletzt geändert 26/10/2018
Quelle des gedruckten Dokuments:https://www.gaudry.be/de/php-rf-function.socket-recvfrom.html
Die Infobro ist eine persönliche Seite, deren Inhalt in meiner alleinigen Verantwortung liegt. Der Text ist unter der CreativeCommons-Lizenz (BY-NC-SA) verfügbar. Weitere Informationen auf die Nutzungsbedingungen und dem Autor.
Referenzen
Diese Verweise und Links verweisen auf Dokumente, die während des Schreibens dieser Seite konsultiert wurden, oder die zusätzliche Informationen liefern können, aber die Autoren dieser Quellen können nicht für den Inhalt dieser Seite verantwortlich gemacht werden.
Der Autor Diese Website ist allein dafür verantwortlich, wie die verschiedenen Konzepte und Freiheiten, die mit den Nachschlagewerken gemacht werden, hier dargestellt werden. Denken Sie daran, dass Sie mehrere Quellinformationen austauschen müssen, um das Risiko von Fehlern zu reduzieren.