AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi [Indy9]: TIdTCPServer/-Client: Client freeze (Timer+ReadLn)
Thema durchsuchen
Ansicht
Themen-Optionen

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

Ein Thema von zecke · begonnen am 15. Apr 2007 · letzter Beitrag vom 15. Apr 2007
Antwort Antwort
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
t0b4d

Registriert seit: 23. Nov 2006
8 Beiträge
 
#2

Re: [Indy9]: TIdTCPServer/-Client: Client freeze (Timer+Read

  Alt 15. Apr 2007, 21:22
ich hab ein ähnliches Problem, deins wird aber soweit ich weis auf dieser Seite geklärt!

http://delphi.about.com/od/interneti.../aa012004a.htm
  Mit Zitat antworten Zitat
Benutzerbild von richie
richie

Registriert seit: 21. Apr 2006
Ort: Dresden
127 Beiträge
 
#3

Re: [Indy9]: TIdTCPServer/-Client: Client freeze (Timer+Read

  Alt 15. Apr 2007, 21:33
Zitat:
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?
gar nicht.

Du kannst bei Readln als Parameter ein Timeout angeben. D.h., nach dem angegeben Zeiträum bricht der Client das Readln ab. Da nimmst du dann ein sehr kleines Intervall, z.B. 5 Millisekunden.
Robert
  Mit Zitat antworten Zitat
Benutzerbild von zecke
zecke

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

Re: [Indy9]: TIdTCPServer/-Client: Client freeze (Timer+Read

  Alt 15. Apr 2007, 22:46
Danke richie... Irgendwie muss ich meine Brille putzen (Hint bei ReadLn...)
friert nicht mehr ein, aber ich habe jetzt andere Probleme, aber jetzt putze ich die Brille und schaue mal nach
mfg zecke
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:41 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz