Mailinglisten-Archive |
Hallo miteinander, seit Tagen schon schlage ich mich mit den verdammten Socket-Funktionen rum, ich komm auf keinen grünen Zweig. Entweder bin ich zu blöd, es funktioniert bei mir nicht oder irgendwo hab ich einen Denkfehler drin... wäre nett, wenn mir jemand mal auf die Sprünge helfen könnte... Ich habe folgenden Code: <?php $fp = fsockopen ("10.0.0.2", 21, $errstr, $errno); if (!$fp) die ("Keine Verbindung: $errstr ($errno)"); $status = socket_get_status($fp); echo "Ungelesene Bytes: ".$status["unread_bytes"]."<br>"; echo "Socket blockiert: ".$status["blocked"]."<br>"; echo "End of File: ".$status["eof"]."<br>"; echo "Timeout: ".$status["timed_out"]."<br>"; flush(); while (!feof($fp)) { echo fgets($fp, 128)."<br>"; } fclose($fp); echo "Ende"; ?> Normalerweise müsste er mir den folgenden String (oder zumindest Teile davon) ausgeben: 220 webserver.domain.de FTP server (Version wu-2.4.2-academ[BETA-18](1) Thu Oct 25 03:14:49 GMT 2001) ready. Diese Ausgabe bekomme ich von netcat, wenn ich auf den Rechner connecte. Also der Server läuft, nur das PHP-Skript gibt gar nichts aus... wenn ich die while-Schleife auskommentiere, erscheint folgendes: Ungelesene Bytes: 0 Socket blockiert: 1 End of File: Timeout: Ende Was bedeutet das "Socket blockiert"? Und warum bekomme ich kein Ergebnis, wenn ich die Verbindung öffne? Ich habe das Skript auf einem Windows-Rechner und auf einem Linux-Rechner mit jeweils einer aktuellen PHP-Version getestet... Hat jemand eine Idee, woran das liegen kann? Ich brauche nämlich unbedingt die Funktion, weil ich auf einem Netzwerkport lesen und schreiben muss... Gruss, Ithamar Garbe
php::bar PHP Wiki - Listenarchive