phpbar.de logo

Mailinglisten-Archive

[php] fsockopen langsaaaaaaaam

[php] fsockopen langsaaaaaaaam

robs-info robs-info at gmx.de
Don Jul 31 16:34:39 CEST 2003


Gerhard Wendebourg schrieb:


>  Aktuelle Informationen 
> Bitte beachten: Diese Liste ist umgezogen.
> Die neue Adresse lautet php at phpbar.de.
> Alle Details siehe unter http://www.phpbar.de

> Diese Zeilen wurden automatisch hinzugefuegt,
> ab hier folgt der urspruengliche Text.
>  Aktuelle Informationen 

> At 14:15 31.07.2003 +0200, Joerg Behrens wrote:

>> > > > diese 3 zeilen dauern so um die 15 sekunden bei einem normale
>> > > > GET-request ohne payload
>> > > > auf localhost(!)
>> > > >
>> > > > // reading response
>> > > >  $response = '';
>> > > >  while (!feof($s))
>> > > >   $response .= fread($s , 1024);
>> > >
>> > > Ich hatte mal ähnliche Probleme.
>> > >
>> > > Mit fread($s , 1); war es dann schneller.
>> > > Frag mich aber nicht wieso, das war mir dann egal als es lief.
>> >
>> > habe es ausprobiert, ändert leider gar nichts :(
>> > hab auch mal mit anderen sizes rumgespielt ... keine veränderung ...
>> >
>> > aber eine recht witzige sache: wenn der server falsch konfiguriert sein
>> > sollte,
>> > liefert er ja 500er an die clients ... diese responses werden ohne jede
>> > verzögerung gelesen ...
>> > so wie es sein sollte .. nur wirkliche 200er OKs brauchen eeeeeewwwig :(
>>
>>Zeig uns doch mal deinen kompl. Code. Kanns es sein das du bei der
>>Komunikation irgentwas weglaesst und der Server nen TimeOut abwartet

> Ich habe vergleichbare Erfahrungen gemacht mit dem Versuch einer 
> if(fsockopen($host....)) Abfrage festzustellen, ob der anzusprechende 
> Server erreichbar ist. Falls nein, dauert es eine halbe Minute oder 
> laenger, bis der Verbindungsaufbau abgebrochen wird, ohne dass ein niedrig 
> eingestellter Timeout beruecksichtig wird.


Da seit HTTP 1.1 defaultmäßig eine dauerhafte Verbindung aufgebaut
wird, bekommt das genannte Script kein Endesignal (deshalb
funktioniert es bei einem 500er Fehler!) und wartet das Timeout ab.

Entweder du wertest den Header Content-length aus (der saubere Weg)
oder du gibst als Protokoll 1.0 an und nicht 1.1, das sollte dann
funktionieren.




-- 
Gruß, Rob


php::bar PHP Wiki   -   Listenarchive