fsockopen

(PHP 3, PHP 4, PHP 5)

fsockopen --  Stellt eine Internet- oder Unix-Domain-Socket-Verbindung her

Beschreibung:

int fsockopen ( string target, int port [, int errno [, string errstr [, double timeout]]] )

Öffnet eine Socket-Verbindung zum Internet (AF_INET, unter Verwendung von TCP oder UDP) oder unter Unix (AF_UNIX). Für eine Internet-Verbindung wird eine TCP-Socket-Verbindung zu hostname über den Port port hergestellt. Für eine UDP-Verbindung müssen Sie das Protokoll udp://hostname explizit angeben. Bei einer UNIX-Verbindung wird hostname als Socket-Pfad interpretiert, port muss in diesem Fall 0 sein. Der optionale Parameter timeout kann benutzt werden, um eine Fehlerwartezeit (Timeout-Wert) für den Verbindungsaufbau (in Sekunden) zu setzen.

Die Funktion fsockopen() gibt einen Zeiger auf eine Datei zurück, der in Verbindung mit anderen Datei-Funktionen (wie z.B. fgets(), fgetss(), fputs(), fclose(), feof()) gebraucht werden kann.

Wenn der Aufruf der Funktion scheitert, gibt er FALSE / falsch zurück und wenn die optionalen errno und errstr Argumente vorhanden sind, enthalten sie den aktuellen System-Fehler, der beim Aufruf der System-Funktion connect() (Verbindungsaufbau) erscheint bzw. passiert ist. Wenn die erhaltene errno 0 ist und die Funktion FALSE/falsch zurück gibt, ist dies ein Hinweis, dass der Fehler vor dem >connect()-Aufruf geschah. Das ist ein Problem, dass häufig mit der Initialisierung des Sockets zusammen hängt. Beachten Sie bitte, dass das errno und errstr-Argument als Referenz zu übergeben sind.

Abhängig von der vorhandenen Umgebung kann die Verbindung zu einer UNIX-Domäne oder der optionale Verbindungsaufbau-Zeitfehler nicht zur Verfügung stehen.

Voreingestellt ist der Verbindungsaufbau im Block-Modus. Sie können dies auf Nicht-Block-Modus ändern, indem Sie socket_set_blocking() benutzen.

Beispiel 1. fsockopen()-Beispiel:

<?php
$fp
= fsockopen ("www.example.com", 80, $errno, $errstr, 30);
if (!
$fp) {
    echo
"$errstr ($errno)<br />\n";
} else {
    
fputs ($fp, "GET / HTTP/1.0\r\n\r\n");
    while (!
feof($fp)) {
        echo
fgets($fp,128);
    }
    
fclose($fp);
}
?>
Das folgende Beispiel zeigt, wie das Datum und die Zeit des UDP-Service "daytime" (Port 13) von ihrer eigenen Maschine empfangen werden kann:

Beispiel 2. Gebrauch einer UDP-Verbindung:

<?php
$fp
= fsockopen("udp://127.0.0.1", 13, $errno; $errstr);
if (!
$fp) {
    echo
"Fehler: $errno - $errstr<br>\n";
} else {
    
fwrite($fp,"\n");
    echo
fread($fp, 26);
    
fclose($fp);
}
?>
Siehe auch: pfsockopen(), socket_set_blocking(), socket_set_timeout(), fgets(), fgetss(), fputs(), fclose() und feof().

Hosting by: Hurra Communications GmbH
Generated: 2007-01-26 17:57:00