Thread Verschachteln von endlos-Schleifen (0 answers)
Opened by hudo at 2007-08-10 17:30

hudo
 2007-08-10 17:30
#97908 #97908
User since
2003-11-20
72 Artikel
BenutzerIn
[default_avatar]
Hallo, ich brauche einen UDP Server, der request von clients empfaengt, request Inhalt mit Inhalt einer mysql-Tabelle vergleicht, diese eventuell updated, und dem client dann antwortet.
Der Server soll auch selbstaendig an die clients schicken, falls sich einer seit zb 5 Sekunden nicht mehr gemeldet hat.
Die request bzw mysql Tabelle sollen in einer TK listbox dargestellt werden, diese listbox soll sich selbstaendig aktualisieren.

Meine ersten Code-Fragmente zu den einzelnen Komponenten findet man hier:

der Server: http://perlpunks.de/paste/show/46bc6456.17ce.39c

der client (kann prinzipiell auch als "senden nach n sekunden verwendet werden"): http://perlpunks.de/paste/show/46bc6528.1fa3.12b

der grafik Teil (liest/aktualisiert im Moment aus einer Datei): http://perlpunks.de/paste/show/46bc6588.2592.1f

Probleme:
===========
Hauptproblem ist die Zusammenführung der Programmteile, vor allem wegen den Endlos-Schleifen (tk MainLoop, server while-Schleife, server sollte bei toten clients aktiv werden). Es sollte nur ein Dos-Fenster benoetigt werden !!
Desweiteren funktioniert das mit timeout im client nicht, er sollte bei KEINEM lauschenden Server trotzdem alle n Sekunden einen Request schicken.

Ein weiteres Problem, wenn der Server mit
Code: (dl )
$sock->send("Zeitstempel: $startzeit : Du sagtest: ''$nachricht'' zu mir $/");

antwortet bricht der client auf XP Maschine bei recv() ab, der client auf Ubuntu (als Vmware guest OS) erhaelt nicht gesamte gesendete Antwort, oder gibt sie zumindest nicht auf STDOUT aus.
Was ist das Problem mit der Variable $startzeit ??




Hier nochmals kurze Zusammenfassung der Anforderungen:
* UDP server empfaengt und sendet zurueck
* UDP server sendet nach n Sekunden falls ein client "tot ist"
* Darstellung der request in selbstaendig aktualisierender TK listbox

View full thread Verschachteln von endlos-Schleifen