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.
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.
$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";
}
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.
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);
?>
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.
Erstellen Sie einen einfachen HTTP -Server
Implementieren Sie einen benutzerdefinierten Netzwerkprotokollserver
Als Backend -Service für Socket Communication