Funktionsname: stream_socket_recvfrom ()
Funktionsbeschreibung: Die Funktion Stream_socket_recvfrom () empfängt Daten aus dem Socket und gibt die empfangenen Daten zurück.
Anwendbare Version: Php 5> = 5.3.0, Php 7
Syntax: Stream_Socket_Recvfrom (Ressource $ Socket, int $ Länge [, int $ flags = 0 [, String & $ Adresse]]): String | Falsch
Parameter:
- $ socket: Erforderlich repräsentiert eine offene Socket -Ressource, die über die Funktion stream_socket_client () oder stream_socket_server () erstellt werden kann.
- $ Länge: Erforderlich, wobei die maximale Datenlänge angezeigt werden, die empfangen werden soll.
- $ flags: optional, verwendet, um zusätzliche Optionen beim Empfangen von Daten anzugeben.
- $ Adresse: Optional, verwendet, um die IP -Adresse und die Portnummer des Absenders zu speichern.
Rückgabewert: Gibt die empfangenen Daten bei erfolgreichem zurück und gibt beim Fehler falsche zurück.
Beispiel:
- Daten empfangen und drucken:
$ socket = stream_socket_client ("udp: //127.0.0.1: 1234", $ errno, $ errstr); if (! $ socket) {echo "Verbindung fehlgeschlagen: $ errstr ($ errno)"; } else {$ data = stream_socket_recvfrom ($ socket, 1024); Echo "Empfangene Daten: $ data"; fcLose ($ socket); }
- Empfangen Sie Daten und erhalten Sie die IP -Adresse und die Portnummer des Absenders:
$ socket = stream_socket_server ("udp: //127.0.0.1: 1234", $ errno, $ errstr, stream_server_bind); if (! } else {$ client = stream_socket_accept ($ socket); $ data = stream_socket_recvfrom ($ client, 1024, 0, $ address); Echo "Empfangene Daten: $ data"; echo "Absenderadresse: $ Adresse"; fcLose ($ client); fcLose ($ socket); }
Anmerkungen:
- Die Funktion von Stream_Socket_Recvfrom () ist nur für Transportprotokolle geeignet, die Stream -Sockets (z. B. TCP, UDP) unterstützen.
- Wenn Sie das UDP -Protokoll verwenden, müssen Sie beim Erstellen des Socket das Protokollpräfix "UDP: //" angeben.
- Wenn der Parameter $ adresse angegeben ist, speichert die Funktion die IP -Adresse und die Portnummer des Absenders in der Variablen.
- Der Parameter $ Länge gibt die maximale Datenlänge an, die empfangen werden soll. Wenn die empfohlene tatsächliche Datenlänge diesen Wert überschreitet, werden nur ein Teil der Daten zurückgegeben.
- Der Parameter $ flags kann verwendet werden, um Optionen beim Empfangen von Daten anzugeben. Zu den gemeinsamen Optionen gehören msg_waitall (warten Sie, bis die Daten der angegebenen Länge empfangen werden) und MSG_DONTWAIT (Nicht-Blocking-Modus).
- Bevor Sie Daten empfangen, müssen Sie eine Socket -Ressource erstellen, die mit den Funktionen von Stream_Socket_Client () oder Stream_Socket_Server () erstellt werden kann.