Halihallo Perler
Ich würde da gerne einen Chat mit einem Kollegen umsetzen. Er schreibt den Chat-Server-
Daemon in C und ich realisiere den Client über Perl/Tk.
Da gibt's eine schöne Oberfläche in Tk, mit einem Message-History-Fenster und einer
Eingabemaske für die Antwort. Drückt man auf "senden" wird gesendet und wenn über das
Socket (INET-Socket zu Chat-Server) eine Antwort von einem anderen User kommt, soll diese
im Message-History-Fenster angezeigt werden. Nun, wenn man Tk verwendet geht nichts über
den MainLoop, da Tk eventbasiert ist und somit auf User-Aktionen wartet. Das ist das
Problem. Ein geforkter Prozess hört das Socket ab und wartet auf die Antworten anderer
Clients (über den Server übermittelt), wie kann ich nun dem Hauptprozess (Tk-Fenster)
ein Event auslösen, sodass das Hauptfenster aktualisiert wird (neue msg. anzeigen)?
Ein refresh-Button ist natürlich höchst unerwünscht, dann verwende ich lieber
mIRC/ICQ :-)
Über einen Signal-Handler (USR1|2) würde ich nur ungern gehen, da dies einfach ein
zu schlechter Workaround wäre. Zudem wäre ich mir nicht sicher, wie ich dann den
Refresh in Tk auslösen könnte, da dieses sowas bestimmt nicht vorsieht.
Seht ihr eine gute Lösung oder gar eine ganz einfache (Standard) Möglichkeit, die ich
übersehen habe?
Viele Grüsse
Philipp