Thread TCP Client - Socket lesen und schliessen (29 answers)
Opened by snarf at 2004-08-18 19:50

snarf
 2004-08-19 11:39
#37550 #37550
User since
2003-08-14
77 Artikel
BenutzerIn
[default_avatar]
Hallo Reinhard,

... hm ... ist das jetzt zu offensichtlich oder steh ich auf dem Schlauch?

Dein PHP-Script schickt das File an den Server und liest dann genau einmal vom Socket (max. 1024 Byte). Danach wird das Socket einfach geschlossen, d.h. es sieht so aus als würde Dein Server einen Verbindungsabbau von Seiten des Clients erwarten.

Dein Perlscript hingegen versucht in einer Schleife soviele 1 Byte "Blöcke" zu lesen bis nichts mehr kommt. Das Problem ist jedoch: solange das Socket offen ist, bricht ein read nicht ab - auch nicht, wenn zur Zeit noch nichts zum lesen ansteht!
Soll heißen ... der Client liest die komplette Antwort des Servers ein und wartet dann einfach, was wohl noch kommen mag (und wenn's auch hundert Jahre dauert).

Daher -> Nur einmal (max) 1024 Byte vom Socket lesen (also genau wie in Deinem PHP Script) und dann einfach das Socket schließen. Jedenfalls ist das die Funktionalität Deines PHP-Scriptes.

Es befinden sich somit (max.) 1024 Byte der Serverantwort in $Status und warten darauf, von Dir interpretiert zu werden.

Gruß, Dirk

View full thread TCP Client - Socket lesen und schliessen