Benutzerdefinierte Suche

PHP -> Auslesen eines Netzwerksockets

  1. maceis

    maceis Thread StarterMacUser Mitglied

    Mitglied seit:
    24.09.2003
    Beiträge:
    16.696
    Zustimmungen:
    602
    hallo zusammen,

    ich habe ein Problem in Zusammenhang mit einer Netzwerkverbindung zu einem pop3 Server, die ich mit PHP aufbaue.
    Die Verbindung selbst kann ich problemlos mit fsockopen() herstellen.
    Auch die Authentifizierung mit fputs() klappt ohne Probleme, die Serverantworten lese ich mit fgets() ebenfalls erfolgreich aus.

    Probleme gibt es erst, wenn ich mit freads() Mails abrufen und deren Text ausgeben möchte.
    Bei der ersten Mail klappt das noch, die zweite wird mir nicht mehr ausgegeben.

    Hier mal ein Auszug aus dem Skript, das ich für wichtig erachte.
    PHP:
    ...
         
    17     retr_message($handle"retr 4\r\n");
         
    18     retr_message($handle"retr 5\r\n");
    ...
         
    80 function retr_message($handle$command)
         
    81 {
         
    82     // retr-Befehl an Server senden
         
    83     fputs($handle$command);
         
    84     // retr- Befehl im Browser ausgeben
         
    85     $command="<font color=blue>".($command)."</font>";
         
    86     echo $command;
         
    87     // Antwort des Servers in Variable speichern
         
    88     $buffer fread($handle,128);
         
    89     while (!feof($handle))
         
    90     {
         
    91         $buffer .= fread($handle128);
         
    92     $statussocket_get_status($handle);
         
    93     
         
    94     // Antwort des Servers am Browser ausgeben
         
    95     echo "<font color=maroon".nl2br($buffer)."</font>";
         
    96     // $status['eof']=0;
         
    97     show_status($status"navy");
         
    98 }
    ...
    Vielleich kann mir mal jemand einen Tip geben.

    Nur Mail 4 wird am Browser ausgegeben.

    Was mir noch aufgefallen ist:
    Beim Sniffen mit dem ethereal ist mir aufgefallen, dass die Mail schon lang gesendet wurde, die Seite im Browser aber erst rund 1 Minute später aufgebaut wird.
    Die zweite Mail wird gar nicht vom Server gesendet obwohl das retr 5 Kommando gesendet wird.
    Ich hatte daher befürchtet, dass das "eof" der ersten mail "stört", allerdings hat ein Zurücksetzen (Zeile 96) auch nichts gebracht.
    Ziel ist es, dass ich hintereinander zwei retr-Kommandos an den Server senden kann und mir auf der Seite die beiden Mails hintereinander ausgegeben werden.
     
    maceis, 15.10.2004
  2. Katana

    KatanaMacUser Mitglied

    Mitglied seit:
    30.08.2004
    Beiträge:
    989
    Zustimmungen:
    0
    irgendwelche pipes die noch geflusht werden müssen/sollten?
     
    Katana, 15.10.2004
  3. maceis

    maceis Thread StarterMacUser Mitglied

    Mitglied seit:
    24.09.2003
    Beiträge:
    16.696
    Zustimmungen:
    602
    Ich bin mir nicht sicher, ob ich Dich richtig verstehe.
    fsockopen(...) sollte mW ähnich funktionieren wie fopen(datei).
    Man kann hineinschreiben und daraus lesen.
    Nur klappt das nicht so richtig ohne dass ich wüsste, was ich falsch mache.
     
    maceis, 15.10.2004
  4. Katana

    KatanaMacUser Mitglied

    Mitglied seit:
    30.08.2004
    Beiträge:
    989
    Zustimmungen:
    0
    ich habe das so verstanden, dass das lesen der daten aus dem socket klappt und die daten auch ankommen, es aber beim senden an den browser erst später angezeigt wird? senden an den browser geht über stdout -> ich dachte deshalb an flush();

    siehe http://de.php.net/manual/de/function.flush.php
     
    Katana, 15.10.2004
  5. maceis

    maceis Thread StarterMacUser Mitglied

    Mitglied seit:
    24.09.2003
    Beiträge:
    16.696
    Zustimmungen:
    602
    Das ist nur ein Nebeneffekt, der mir aufgefallen ist.
    Das Hauptproblem besteht darin, dass nach dem zweiten Kommando "retr #" keine Mail übertragen wird.
    Ich hab das flush natürlich dennoch probiert, ergibt aber keine Änderung.
    Trotzdem Danke für die Mühe ;)
     
    maceis, 15.10.2004
Die Seite wird geladen...
Ähnliche Themen - PHP Auslesen eines
  1. max@hismac
    Antworten:
    7
    Aufrufe:
    2.146
    Olivetti
    14.04.2011
  2. berndi
    Antworten:
    3
    Aufrufe:
    585
    rm -r *
    24.10.2009
  3. ne0x
    Antworten:
    14
    Aufrufe:
    1.268
    eXcuvator
    29.10.2007
  4. img31
    Antworten:
    4
    Aufrufe:
    672
  5. toaster099
    Antworten:
    17
    Aufrufe:
    1.124
    Saugkraft
    19.01.2007