Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi TIdTCPClient daten empfangen (Indy10) (https://www.delphipraxis.net/167973-tidtcpclient-daten-empfangen-indy10.html)

Dregan 27. Apr 2012 19:24


TIdTCPClient daten empfangen (Indy10)
 
Hey,

Ich hab da ein kleines Problem. Gibt es eine Funktion in Indy10, die es mir ermöglich, dass ein Client Event genauso funktioniert, wie das Event OnExecute, wie bei einem Server?

Ich habe mir eine "Lösung" zurechtgebastelt, jedoch ist diese nicht unbedingt optimal. Ich habe einen Timer erstellt, der aller x ms ungefähr folgendes ausführt, um Daten zu erhalten und anzuzeigen:

Code:
updatemessage := Client.IOHandler.ReadLn('', 10);
if updatemessage <> '' then
  Memo1.Lines.Add(updatemessage);
Hört sich so eigentlich nicht unbedingt schlecht an, aber mein Programm baut mehrere Verbindungen auf - Das heißt: Ganz fix könnten da auch schonmal 10-20 Verbindungen stehen und das wird sehr unangenehm gegenüber dem Rechner. Ich suche halt lediglich einen effizienteren Weg.

Liebe Grüße,
Dregan

bernhard_LA 27. Apr 2012 19:39

AW: TIdTCPClient daten empfangen (Indy10)
 
ich habe einige DEMO INDY 10 auf Source forge , alle samples bis auf #3 spielen, hier bin ich selber noch auf der Suche nach dem Bug

Dregan 27. Apr 2012 19:59

AW: TIdTCPClient daten empfangen (Indy10)
 
Hey bernhard_LA,

In deinen samples befindet sich nichts, was mein Problem Lösen könnte. Ich hatte die mir schon angeschaut, bevor ich dieses Thema geöffnet habe. Aber danke für deine hilfe.

Dregan

Zacherl 28. Apr 2012 04:56

AW: TIdTCPClient daten empfangen (Indy10)
 
Du kannst in einem extra Thread die blocking Receive Funktionen aufrufen. Solange keine Daten da sind, ist der Thread dann praktisch angehalten.

willyxv 28. Apr 2012 08:55

AW: TIdTCPClient daten empfangen (Indy10)
 
Hi,

Ich selbst nutze den Client.Socket von Delphi, hier ist ein gutes Tutorial.

http://www.youtube.com/watch?v=xr63bhoXF3A

Der Client hat ein onRead Ereigniss welches genau das tut, was du willst.

MfG Willy

Dregan 28. Apr 2012 10:45

AW: TIdTCPClient daten empfangen (Indy10)
 
Hey Zacherl,

Danke für deine Antwort. Das klingt gut. Ich werde es mal damit versuchen.

@willyxz: Auch dir danke. Ich muss jedoch mit den Indy-Komponenten arbeiten.

Liebe Grüße,
Dregan

DataCool 29. Apr 2012 22:15

AW: TIdTCPClient daten empfangen (Indy10)
 
@Dregan:
Du kannst auch einfach anstatt eines Timer einer eigenen Thread
erzeugen der alles an Daten liesst, was aus der Leistung kommt.

Greetz Data


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:12 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