tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
2
ZUGRIFFE
275
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von Avedo
    Avedo Avedo ist offline Mitglied Brokat
    Registriert seit
    May 2007
    Ort
    Göttingen
    Beiträge
    387
    Guten Abend,

    Ich habe ein kleines Problem. Ich muss Daten von einer mit fsockopen() hergestellten Verbindung lesen. Dazu habe ich zwei verschiedene Ansätze. Bisher erziehlte der 1. Ansatz deutlich schnellere und bessere Resultate, trotz der Rekursion und dem Schlafenlegen des Programms. Das kann ich mir überhaupt nicht erklären. Kann mir das jemand erklären und kennt jemand vielleicht noch eine weitere, eventuell sogar bessere Implementation?

    Lg, Andreas

    Ansatz 1
    PHP-Code:
        /* read message from socket */
            
    $message fgets($this->control);
            
            
    /* check if there were some data */
            
    if( $message == '' )
            {
          
    /* check if max depth is reached */
                
    if( $i==30 )
                {
                    return 
    "";
                }
                
                else
                {
            
    /* wait a moment */
                    
    sleep(1);
                    return 
    $this->getReply($i+1);
                }
            } 
    Ansatz 2
    PHP-Code:
            $go true;
            
    $message "";
            
            do 
            {    
                
    $tmp = @fgets($this->control512);
                if(
    $tmp === false
                {
                    
    $go false;
                } 
                
                else 
                {
                    
    $message .= $tmp;
                    if( 
    preg_match('/^([0-9]{3})(-(.*[\r\n]{1,2})+\\1)? [^\r\n]+[\r\n]{1,2}$/'$message) ) $go false;
                }
            } while(
    $go); 
    Geändert von Avedo (02.11.09 um 17:47 Uhr)
     
    Association for Valid wEb DevelOpment - Informatik, Programmierung & Webdesign
    http://www.avedo.net

  2. #2
    Avatar von Sven Mintel
    Sven Mintel Sven Mintel ist offline Mitglied
    Registriert seit
    Aug 2003
    Beiträge
    18.238
    Blog-Einträge
    6
    Moin,

    ich würde da preg_match() als Nadelöhr verdächtigen.
     

  3. #3
    Avatar von Da_Chris
    Da_Chris Da_Chris ist offline Mitglied Platin
    Registriert seit
    Feb 2007
    Ort
    Augsburg
    Beiträge
    651
    wohl eindeutig Sven
     
    Google und die Forensuche beantworten 50% aller Fragen!
    Pflichtlektüre: Das PHP Handbuch als Windows Help Datei

    Bitte Benutzt für Source-Code immer die richtigen Formatierungstags:
    [PHP]Für PHP diese Tags[\PHP] ... [HTML]Für HTML diese Tags[\HTML] ... [SQL]Für SQL diese Tags[\SQL] ... [CODE]Für sonstigen Code[\CODE]

    Wenn mein Beitrag hilfreich war bitte ich um eine positive Bewertung.

Ähnliche Themen

  1. Antworten: 2
    Letzter Beitrag: 30.01.08, 10:24
  2. Antworten: 2
    Letzter Beitrag: 29.01.08, 14:59
  3. Server Socket und Client Socket
    Von spiderman21 im Forum Enterprise Java (JEE, J2EE, Spring & Co.)
    Antworten: 2
    Letzter Beitrag: 23.10.07, 17:00
  4. Server Socket und Client Socket
    Von spiderman21 im Forum Netzwerke
    Antworten: 1
    Letzter Beitrag: 22.10.07, 01:48
  5. XML-Stream von Socket lesen
    Von lindin im Forum Java
    Antworten: 0
    Letzter Beitrag: 31.08.04, 16:34