fsockopen

(PHP 4, PHP 5, PHP 7, PHP 8)

fsockopenStellt eine Internet- oder Unix-Domain-Socket-Verbindung her

Beschreibung

fsockopen(
    string $hostname,
    int $port = -1,
    int &$error_code = null,
    string &$error_message = null,
    ?float $timeout = null
): resource|false

Initialisiert eine Socket-Verbindung zu der in hostname angegebenen Ressource.

PHP unterstützt Ziele in Internet- und Unixdomänen, wie sie unter Liste der unterstützten Socket-Transporter beschrieben sind. Eine Liste unterstützter Transportarten kann auch mittels stream_get_transports() abgerufen werden.

Der Socket wird standardmäßig im blockierenden Modus geöffnet. Mit der Funktion stream_set_blocking() kann auf den nichtblockierenden Modus gewechselt werden.

Die Funktion stream_socket_client() ist ähnlich, bietet aber eine umfangreichere Auswahl von Optionen an, einschließlich blockierungsfreier Verbindungen und der Möglichkeit, einen Stream-Kontext zu übergeben.

Parameter-Liste

hostname

Ist die OpenSSL-Unterstützung installiert, kann dem Parameter hostname entweder ein ssl:// oder ein tls:// vorangestellt werden, um bei der Verbindung zum entfernten Host eine SSL- oder TLS-Clientverbindung über TCP/IP zu verwenden.

port

Die Portnummer. Diese kann ausgelassen und mit -1 übersprungen werden, wenn der Transport keinen Port verwendet, z. B. unix://.

error_code

Falls angegeben, enthält der Parameter die Fehlernummer auf Systemebene, die beim Aufruf der Funktion connect() auftrat.

Wenn der Rückgabewert von error_code 0 ist und die Funktion false zurückgibt, ist dies ein Zeichen, dass der Fehler vor dem Aufruf von connect() auftrat. Dies ist meist der Fall, wenn es ein Problem beim Initialisieren des Sockets gibt.

error_message

Die Fehlermeldung als String.

timeout

Der Verbindungs-Timeout in Sekunden. Falls null, wird die php.ini-Einstellung default_socket_timeout verwendet.

Hinweis:

Um einen Timeout für das Lesen oder Schreiben von Daten über den Socket zu setzen, muss stream_set_timeout() verwendet werden, da der Parameter timeout von fsockopen() nur für den Verbindungsaufbau mit dem Socket gedacht ist.

Rückgabewerte

Die Funktion fsockopen() gibt einen Zeiger auf eine Datei zurück, der zusammen mit den anderen Dateifunktionen (wie fgets(), fgetss(), fwrite(), fclose() und feof()) verwendet werden kann. Wenn der Aufruf fehlschlägt, wird false zurückgegeben.

Fehler/Exceptions

Löst einen Fehler der Stufe E_WARNING aus, wenn hostname keine gültige Domain ist.

Changelog

Version Beschreibung
8.0.0 timeout ist nun nullable (akzeptiert den null-Wert).

Beispiele

Beispiel #1 fsockopen()-Beispiel

<?php
$fp 
fsockopen("www.example.com"80$errno$errstr30);
if (!
$fp) {
    echo 
"$errstr ($errno)<br />\n";
} else {
    
$out "GET / HTTP/1.1\r\n";
    
$out .= "Host: www.example.com\r\n";
    
$out .= "Connection: Close\r\n\r\n";
    
fwrite($fp$out);
    while (!
feof($fp)) {
        echo 
fgets($fp128);
    }
    
fclose($fp);
}
?>

Beispiel #2 Eine UDP-Verbindung nutzen

Das folgende Beispiel zeigt, wie Sie den Tag und die Zeit vom UDP-Service "daytime" (Port 13) Ihrer Maschine abfragen können.

<?php
$fp 
fsockopen("udp://127.0.0.1"13$errno$errstr);
if (!
$fp) {
    echo 
"ERROR: $errno - $errstr<br />\n";
} else {
    
fwrite($fp"\n");
    echo 
fread($fp26);
    
fclose($fp);
}
?>

Anmerkungen

Hinweis:

Abhängig von der Systemumgebung kann es vorkommen, dass die Unix-Domäne oder der optionale Verbindungs-Timeout nicht verfügbar sind.

Warnung

UDP-Sockets werden manchmal ohne die Rückgabe eines Fehlermeldung geöffnet, obwohl der entfernte Host nicht erreichbar ist. Der Fehler wird nur sichtbar, wenn Sie Daten vom Socket lesen oder zum Socket schreiben wollen. Der Grund dafür ist, dass UDP ein "verbindungsloses" Protokoll ist, was bedeutet, dass das Betriebssystem nicht versucht, eine Verbindung zum Socket herzustellen, solange es nicht wirklich Daten senden oder empfangen muss.

Hinweis: Wenn Sie eine numerische IPv6-Adresse angeben, z.B. fe80::1, müssen Sie die IP in eckige Klammern schreiben, z.B. tcp://[fe80::1]:80.

Siehe auch

Hier Kannst Du einen Kommentar verfassen


Bitte gib mindestens 10 Zeichen ein.
Wird geladen... Bitte warte.
* Pflichtangabe
Es sind noch keine Kommentare vorhanden.

Grundlagen von Views in MySQL

Views in einer MySQL-Datenbank bieten die Möglichkeit, eine virtuelle Tabelle basierend auf dem Ergebnis einer SQL-Abfrage zu erstellen. ...

admin

Autor : admin
Kategorie: mySQL-Tutorials

Definition von Stored Procedures - eine Einführung

Stored Procedures sind vordefinierte SQL-Codeblöcke, die in einer Datenbank gespeichert sind und bei Bedarf aufgerufen werden können. ...

Bernie

Autor : ebiz-consult GmbH & Co. KG
Kategorie: mySQL-Tutorials

Wie kann man komplexe Abfragen mit SQL-Querys In MySQLi effektiv durchführen?

In diesem MySQL-Tutorial wird erklärt, wie komplexe SQL-Abfragen in MySQLi effizient durchgeführt werden können. Wir werden uns mit verschiedenen Aspekten der Datenbankabfrage beschäftigen und spezifische Methoden kennenlernen. ...

TheMax

Autor : TheMax
Kategorie: mySQL-Tutorials

Tutorial veröffentlichen

Tutorial veröffentlichen

Teile Dein Wissen mit anderen Entwicklern weltweit

Du bist Profi in deinem Bereich und möchtest dein Wissen teilen, dann melde dich jetzt an und teile es mit unserer PHP-Community

mehr erfahren

Tutorial veröffentlichen

Professioneller Webentwickler & Webdesigner

Of course, here is the translation: Hello, Thank you for your interest in the long-term project. Your extensive skills and experience in web dev ...

Geschrieben von Athelstan am 15.04.2024 09:25:39
Forum: Jobgesuche
Wir stellen unsere SEO-Agentur vor

Hallo In der heutigen digitalen Welt war es für Unternehmen noch nie so einfach, ihre Reichweite weltweit zu vergrößern. Wenn Sie außerhalb I ...

Geschrieben von thomasmuller am 14.04.2024 07:18:33
Forum: User stellen sich vor
Spielplan für 4 Gruppen zu je 6 Teams auf 2 Feldern

Hallöchen zusammen, ich versuche derzeit unseren Excel-Spielplan in PHP zu überführen. Eigentlich bin ich auch shon fertig - wenn da nicht dies ...

Geschrieben von derH0st am 11.04.2024 15:58:37
Forum: PHP Developer Forum
PHP 8.3.3 - App kann auf dem PC nicht ausgeführt werden

Problem gelöst. Die php.exe hatte einen defekt. Neue heruntergeladen und fertig.

Geschrieben von Tetra1081 am 10.04.2024 16:49:14
Forum: PHP Developer Forum