Aktueller Standort: Startseite> Neueste Artikel> socket_accept () + socket_write (): Senden Sie eine Antwort an den Client

socket_accept () + socket_write (): Senden Sie eine Antwort an den Client

M66 2025-05-20

In PHP ist die Socket -Programmierung eine zugrunde liegende Netzwerkkommunikationsmethode, die zum Erstellen benutzerdefinierter Serverprogramme geeignet ist. In diesem Artikel wird vorgestellt, wie Sie die Funktion socket_accept () verwenden, um Client -Verbindungen zu akzeptieren und eine Antwort über die Funktion von Socket_Write () an den Client zu senden.

1. Erstellen Sie einen Socket und binden Sie den Port

Zunächst müssen wir eine Socket -Ressource erstellen und an die angegebene IP -Adresse und den angegebenen Port binden, um Clientanforderungen anzuhören.

 <?php
// Erstellen aTCP socket
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if ($socket === false) {
    die("socket_create() scheitern: " . socket_strerror(socket_last_error()) . "\n");
}

// BindenIPund Ports,假设Binden本地IPund Ports8080
$bind = socket_bind($socket, "0.0.0.0", 8080);
if ($bind === false) {
    die("socket_bind() scheitern: " . socket_strerror(socket_last_error($socket)) . "\n");
}

2. Hören Sie und akzeptieren Sie Verbindungen

Nachdem die Bindung erfolgreich ist, rufen wir Socket_Listen () an, um mit dem Zuhören zu beginnen, und verwenden dann Socket_accept (), um zu blockieren und zu warten, bis der Client eine Verbindung herstellt.

 // Beginnen Sie mit der Überwachung,Am meisten erlaubt5Für Verbindungen aufstellen
socket_listen($socket, 5);
echo "Serverstart,Warten auf die Kundenverbindung...\n";

while (true) {
    // 阻塞Warten auf die Kundenverbindung
    $clientSocket = socket_accept($socket);
    if ($clientSocket === false) {
        echo "socket_accept() scheitern: " . socket_strerror(socket_last_error($socket)) . "\n";
        continue;
    }

    echo "Der Client ist verbunden\n";

3. Lesen Sie die Client -Anfrage und senden Sie die Antwort

Nach dem Empfangen der Clientverbindung können die Clientdaten über Socket_read () gelesen und eine Antwort mit socket_write () an den Client senden. Senden Sie beispielsweise eine einfache Begrüßungsnachricht.

     // Clientdaten lesen,Maximale Lesen1024Byte
    $input = socket_read($clientSocket, 1024);
    echo "Empfangen Sie eine Client -Nachricht: $input\n";

    // Antwortdaten senden
    $response = "Willkommen zu Besuchm66.netServer!\n";
    socket_write($clientSocket, $response, strlen($response));

    // Client -Verbindung schließen
    socket_close($clientSocket);
}

4. Schließen Sie den Server -Socket

Wenn der Server heruntergefahren werden muss, rufen Sie Socket_Close () auf, um die Ressource zu veröffentlichen.

 socket_close($socket);

Zusammenfassen

Der obige Code zeigt ein einfaches Beispiel für einen PHP-Socket-basierten Server mit dem Fokus auf:

  • Verwenden Sie Socket_Create () , um Socket zu erstellen.

  • Verwenden Sie Socket_Bind (), um IP und Port zu binden.

  • Verwenden Sie Socket_Listen () , um zu hören.

  • Verwenden Sie Socket_accept () , um das Warten auf die Client -Verbindung zu blockieren.

  • Verwenden Sie Socket_Write () , um Datenantworten an den Client zu senden.

Auf diese Weise können Sie einen grundlegenden TCP -Server über PHP Native Socket -Programmierung erstellen und Client -Verbindungen und Kommunikation flexibel behandeln.