Einzelnen Beitrag anzeigen

Benutzerbild von zecke
zecke

Registriert seit: 17. Jan 2004
494 Beiträge
 
Turbo Delphi für Win32
 
#1

[Indy9]: TIdTCPServer/-Client: Client freeze (Timer+ReadLn)

  Alt 15. Apr 2007, 18:28


Wiedermal geht es um die Indys, genauer um die Indy 9 Komponenten TIdTCPServer und TIdTCPClient. Ich wollte mir mal ein wenig anschauen, wie ich es hinbekomme, Nachrichten zu versenden.
Ich schaute mir also den Demo-Chat von indyprojects.org an und naja, als Anfänger scheint der mir etwas ungeeignet

Ich habe es inzwischen hinbekommen vom Client eine Nachricht zum Server zu schicken, kein Problem soweit. Jetzt bekam ich aber (wie die DP-Suche mir zeigte war ich nicht der Einzige ) zu dem Problem, dass ich beim Senden (String) von Server zum Client (später mal mehrere Clients) einen Timer zum abfragen benutzen muss, weil der Client kein OnExecute hat. Der Client pennt quasi so vor sich hin, bis man ihn an der Schulter anstuppst.

Ich habe also einen Timer draufgeklatscht und die ReadLn-Abfrage reingepackt. Allerdings friert mir jetzt der Client nach der 1. Abfrage, wenn der Timer erneut ausgeführt wird, immer ein. Ich konnte darüber nichts finden, gehe aber davon aus, dass es daran liegt, das keine neuen Nachrichten vorhanden sind, die der Client empfangen könnte und somit ReadLn versucht aber nichts bekommt.

Wenn meine Vermutung richtig ist, wie kann ich denn prüfen, ob eine neue Nachricht vom Server gesendet wurde und nur in dem Fall das ReadLn ausführen?



Ich danke im voraus
mfg zecke
  Mit Zitat antworten Zitat