Aktueller Standort: Startseite> Neueste Artikel> Detaillierte Erläuterung der grundlegenden Verwendung der Funktion von Stream_Socket_Server in PHP

Detaillierte Erläuterung der grundlegenden Verwendung der Funktion von Stream_Socket_Server in PHP

gitbox 2025-06-07

In der PHP-Programmierung ist die Funktion stream_socket_server ein leistungsstarkes Tool zum Erstellen eines Stream-basierten Server-Socket. Es ermöglicht das Programm, auf einen Netzwerkport zu hören, darauf zu warten, dass der Client eine Verbindung herstellt und diese Verbindungen verarbeitet. Im Vergleich zu herkömmlichen Funktionen wie Sock_create und Sock_bind bietet Stream_Socket_Server eine höhere Kapselung und vereinfacht den Konstruktionsprozess von Netzwerkdiensten.

Was ist stream_socket_server ?

Stream_Socket_Server ist eine integrierte Funktion in PHP, die einen Server-Socket erstellt und auf bestimmte Adressen und Ports hört. Es gibt eine Stream -Ressource zurück, mit der Clientverbindungen akzeptiert werden können. Diese Funktion unterstützt eine Vielzahl von Protokollen, einschließlich TCP-, UDP- und UNIX -Domänen -Sockets.

Grundlegende Syntax

 $server = stream_socket_server("tcp://gitbox.net:8080", $errno, $errstr);
if (!$server) {
    echo "Ein Server kann nicht erstellt werden: $errstr ($errno)\n";
} else {
    echo "Servererstellung erfolgreich,Hören Sie sich den Port an8080\n";
}

Parameterbeschreibung

  • Adressparameter : Normalerweise eine Kombination aus Protokolltyp (z. B. TCP, UDP) gefolgt von : // und IP -Adresse und Portnummer. Zum Beispiel bedeutet TCP: //gitbox.net: 8080 , dass das TCP -Protokoll auf Port 8080 des Gitbox.net -Hosts hört.

  • Fehlernummer Parameter : Übergeben Sie die Variable, um den Fehlercode zu erfassen.

  • Fehler Zeichenfolge Parameter : In Variable übergeben, um Fehlerinformationen zu erfassen.

Basisnutzungsbeispiele

Das folgende Beispiel zeigt einen einfachen TCP -Server, der auf den nativen Port 8080 hört, Clientverbindungen empfängt, Daten liest und eine Antwort zurückgibt:

 <?php
$address = "tcp://gitbox.net:8080";
$server = stream_socket_server($address, $errno, $errstr);

if (!$server) {
    die("Serverstart fehlgeschlagen: $errstr ($errno)\n");
}

echo "Der Server wird gestartet,Monitor $address\n";

while ($conn = stream_socket_accept($server)) {
    $request = fread($conn, 1024);
    echo "Erhielt eine Anfrage: $request\n";

    $response = "HTTP/1.1 200 OK\r\nContent-Type: text/plain\r\n\r\nHello from PHP server!";
    fwrite($conn, $response);
    fclose($conn);
}

fclose($server);
?>

veranschaulichen

  • Verwenden Sie Stream_Socket_accept , um das Warten auf die Client -Verbindung zu blockieren.

  • Sobald eine Verbindung besteht, lesen Sie die Clientdaten und antworten Sie nach einer einfachen Verarbeitung.

  • Der Server kann kontinuierlich ausgeführt und mehrere Anforderungen abgeschlossen werden.

Anwendbare Szenarien

  • Erstellen Sie einen einfachen HTTP -Server

  • Implementieren Sie einen benutzerdefinierten Netzwerkprotokollserver

  • Als Backend -Service für Socket Communication