Autor Beitrag
opfer.der.genauigkeit
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 754
Erhaltene Danke: 1



BeitragVerfasst: Mo 25.02.08 02:51 
user profile iconartelogic hat folgendes geschrieben:
sei mir nicht böse, aber ich versteh den denkansatz nicht.

tut mir leid...

user profile iconartelogic hat folgendes geschrieben:
hier hat doch jemand ein konkretes problem gepostet, oder?
und ich schätze mal, der will sein problem gelöst wissen und nicht irgendein firlefanz gelaber hören.


Ja, mit IdTCPClient1.IOHandler.CheckForDataOnSource( x ) & IdTCPClient1.IOHandler.InputBuffer.Size weiß er auch wieviele Daten er bekommt.

user profile iconartelogic hat folgendes geschrieben:

und sein problem ist, daß er aus einem anderen als dem MainThread auf VCL-Komponenten zugreift. und da kannste jetzt nicht einfach sagen, vergessen wir mal die threads und lösen das problem indem wir es ignorieren.


Ja du hast Recht, wie konnte ich das wesentliche Problem nur uebersehen. :mrgreen:
Deswegen verweise ich gleich mal. www.michael-puff.de/...reads_mit_Delphi.pdf

user profile iconartelogic hat folgendes geschrieben:

und ich weiß auch nicht, was gegen einen timer spricht, wenn es was zu timen gibt. und noch viel weniger weiß ich, was an den indy komponenten auszusetzen ist. die sind durchaus robust genug, um sie bei professionellen projekten einzusetzen.


Ja... debug sie mal und lies dir die TODO-Liste durch...
Jeder hat einen anderen Qualitaetsanspruch. ;)
... aber es ist auch Geschmackssache... ich wuerde sie niemals fuer kommerzielle Produkte einsetzen...
Das ist meine Meinung, die muss man nicht gut finden. :twisted:

_________________
Stellen Sie sich bitte Zirkusmusik vor.
opfer.der.genauigkeit
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 754
Erhaltene Danke: 1



BeitragVerfasst: Mo 25.02.08 08:51 
Achso, weil ich es nicht erwähnt habe.
Die Funktion ReadString(x) löst eine Exception aus, wenn zu viele Daten gelesen werden.
Das liegt - wenn ich mich recht entsinne - daran, dass beim Lesen festgestellt wird, dass der Socket schon geschloßen ist und der Server fröhlich weiter Daten liest, obwohl keine mehr da sind.
Ohne try...except fällt einem das nicht auf und der gelesene String bleibt leer.

_________________
Stellen Sie sich bitte Zirkusmusik vor.
::micha:: Threadstarter
Hält's aus hier
Beiträge: 8



BeitragVerfasst: Mo 25.02.08 11:15 
Der Client benutzt die Indy Komponente garnicht, sondern ist wohl in C++ geschrieben und auf den habe ich auch keinen einfluss.
Ich weiß nur, was ich zu erwarten habe, wenn ich den ein oder anderen Befehl sende.
Gruß
Micha
opfer.der.genauigkeit
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 754
Erhaltene Danke: 1



BeitragVerfasst: Mo 25.02.08 11:42 
user profile iconopfer.der.genauigkeit hat folgendes geschrieben:

... IdTCPClient1.IOHandler.CheckForDataOnSource( x ) & IdTCPClient1.IOHandler.InputBuffer.Size ...


Was kommt bei dir denn dabei raus?

_________________
Stellen Sie sich bitte Zirkusmusik vor.
::micha:: Threadstarter
Hält's aus hier
Beiträge: 8



BeitragVerfasst: Mi 27.02.08 11:48 
wie gesagt, die Clientkomponente ist nicht von mir und da kann ich auch nix dran rumprogrammieren.
ich lese jetzt die daten mit ReadBytes, das scheint zu funktionieren.

gruß
Micha