Thread IO::Select Problem: Verzöerung bei einkommenden Nachrichten
(3 answers)
Opened by Gast at 2007-02-16 17:53
Hallo,
Ich wollte ein kleiner Pler-prog schreiben, dass zwei Verbindungen zu IRC-Servern aufrechterhält. Ich mach also $sock1 und $sock2 mit new IO::Socket::INET und so.. und dann wie bei cpan.org oder auch hier in einem gewissen artikel beschrieben mit IO::Select->new eine schleife, die alle sockets managen kann. Der relevante code ist folgender: Code: (dl
)
1 while(my @ready = $select->can_read) Ob das jetzt schön gecodet ist, sei mal dahingestellt, jedenfalls hab ich das problem, dass, wenn ich das programm im terminal starte, dann bekomme ich von einem irc-server über das socket ne ziemliche menge an infos. Aber nach ca 10 Zeilen bekomme ich keine Nachrichten mehr angezeigt für etwa 2 minuten, obwohl noch ettliches fehlt, was gesendet wird. Das kommt dann alles nach besagte 2 minuten auf einen schlag. Hat das irgenwas mit einem Puffer zu tun oder so, den ich bei select beachten muss? wenn ich ein socket mit while (<$sock1>) auslese, habe ich diesen Fehler nicht und die zeilen werden alle genau dann ausgegeben, wenn sie vom irc-server gesendet werden. Ich hoffe, ihr habt mein problem verstanden ;) gruß, me² |