Supportnet Computer
Planet of Tech

Supportnet / Forum / Skripte(PHP,ASP,Perl...)

Perl - Zeitschleife





Frage

Hey, ich hab da mal ein kleines Problem. Ich programmiere gerade einen Socketserver, -client. Vom Client sende ich ein Befehl, der vom Server ordnungsgemäß beantwortet wird. z.b Client sagt "open" Server öffnet eine Datei und sendet den Quelltext an den Client zurück. Damit mein Client sich nicht tot wartet, wenn er eine Antwort erhält, benötige ich für die while-schleife der Empfangsroutine eine Zeitfunktion, welche nach einer bestimmten Zeit aus der While-Schleife springt. Die Routine beim Client: $msg="start\n"; $server->send($msg,$proto) or print "Kann nicht senden: $!<br>\n"; $server->recv($antwort,$proto) or print "Kann nichts empfangen: $!<br>\n"; while (<$server>){ $_=~s/\r//; $_=~s/\n//; print $_,"<br>\n"; } hat der Server geantwortet, printet der Client die Zeilen und bleibt dann in der Schleife hängen. Deshalb möchte ich das ganze mit einer Zeitschleife durchführen. Der Client soll mit beginn der while-schleife nach 5Sekunden aus der Schleife springen. (last) Wäre nett wenn mir jemand helfen kann. Danke im Voraus!

Antwort 1 von Dr.Ma-Busen

Nabend!

Also ich habe mich mit socket Programierung in Perl noch nicht beschäftigt und kenne das verhalten der entsprechenden Modul nicht bzw. was die und wie die, die Daten zurückgeben.

Aber spontan würde ich jetzt sagen, um dein Problem zu lösen. Du arbeitest mit Threads.
Also vor der While Schleife startest du einen Thread der nach einer gewissen zeit eine Variable z.B. auf true setzt und in deiner While- Schleife überprüfst du die Variable mit einer if- Abfrage und verläst dann die Schleife.

Ok, dass ist zwar jetzt nicht die beste Lösung und es gibt bestimmt auch noch andere, bessere lösungen, aber um dein Problem vorläuftig zu beheben sollte es gehn.

MfG
Dr. Ma-Busen


Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: