PHP Handbuch
Zurück |  | Weiter

# 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().

Zurück | Zum Anfang | Weiter
dns_get_record | Nach oben | gethostbyaddr