Thread Socket Problem mit localhost: use Socket
(10 answers)
Opened by Gast at 2006-07-04 05:15
Also mit <CLIENT> liest Du eine Zeile ein und mit recv einen Block. Das Problem ist, dass das Zeilenlesen gepuffert ist, d. h. es wird ein großer Block eingelesen und davon die erste Zeile zurueckgegeben. Dieser Block steht dem recv danach nicht mehr zur Verfuegung.
Wenn Du Dich lokal von demselben Server aus verbindest, kommt die zweite Zeile wahrscheinlich viel schneller nach der ersten an, sodass sie mit in dem Puffer landet. Als Faustregel gilt, dass man nie gepufferte Sachen mit ungepufferten Sachen mixen soll. Ferner frage ich mich, warum Du die Eingabe output nennst und nicht input. [s]Außerdem ist das erste Argument an split immer ein regulärer Ausdruck. Der sollte der besseren Lesbarkeit zuliebe mit / / begrenzt sein und nicht mit " ".[/s] Uebrigens gibt es auch IO::Socket::INET. Das ist weitaus komfortabler zu bedienen als die socket-Funktion und Konsorten. Ferner beachte bitte immer noch dein Beitrag von esskar: Dein Code ist nicht ohne weiteres ausfuehrbar. Bitte poste das nächste Mal auch die use-Zeilen am Anfang, damit wir ohne Mühe testen koennen.\n\n <!--EDIT|betterworld|1152053616--> Lieblingsmodule: IPC::System::Simple, Path::Class
|