Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Indy TCP Client: OnExecute? Thread verwenden? (https://www.delphipraxis.net/25059-indy-tcp-client-onexecute-thread-verwenden.html)

Tubos 30. Jun 2004 15:40


Indy TCP Client: OnExecute? Thread verwenden?
 
Hallo;

beim Indy TCP Server gibt es ja die komfortable Methode OnExecute, die auch automatisch einen Thread erzeugt.

Muss ich beim Client selbst einen erzeugen, in dem ich ständig readln aufrufe?

Meflin 30. Jun 2004 17:31

Re: Indy TCP Client: OnExecute? Thread verwenden?
 
hi,
also erlichgesagt versteh ich echt dein probelm nicht. warum willst du beim client einen thread erzeugen? und warum sollte readln beim client einen thread erzeugen...???

Tubos 30. Jun 2004 17:43

Re: Indy TCP Client: OnExecute? Thread verwenden?
 
Beim Server erzeugt OnExecute einen eigenen Thread, oder?
Hab ich ausprobiert: sleep(10000) reingetan und die Hauptanwendung ist nicht eingefroren.
Der Taskmanager hat auch mehrere Threads angezeigt.

Mein Serversocket heißt "server", mein Clientsocket "client".
Wenn ich im OnExecute x:=server.readln mache, friert das Hauptprogramm nicht ein.
Ich lese also einen String per readln ein und verteile ihn danach weiter oder verarbeite ihn.
Hmmm...wie ist das eigentlich bei mehreren Verbindungen? Wird da OnExecute mehrmals gestartet?

Ein Client hat aber kein OnExecute.
Wenn ich mit dem Daten empfangen will, muss ich selbst einen Thread erzeugen, oder?

Meflin 30. Jun 2004 17:47

Re: Indy TCP Client: OnExecute? Thread verwenden?
 
nein. du kannst mit dem client nicht so einfach auf daten warten. du musst schon was hinsenden und auf eine antwort vom server warten. das ist ja das client-server prinzip. das onExecute ereignis wird immer dann ausgeführt, wenn ein client eine nachricht zum server schickt. aber umgekehrt funzt das net so ganz!

Tubos 30. Jun 2004 17:54

Re: Indy TCP Client: OnExecute? Thread verwenden?
 
Zitat:

nein. du kannst mit dem client nicht so einfach auf daten warten. du musst schon was hinsenden und auf eine antwort vom server warten.
Aha...also der Server antwortet...und wie empfängt der Client die Antwort?
Mit einem Thread?
Oder gibt es da auch ein Ereignis?

Zitat:

das onExecute ereignis wird immer dann ausgeführt, wenn ein client eine nachricht zum server schickt
Hmmm, habe das getestet und das OnExecute-Ereignis ist ständig aufgetreten wenn die Verbindung hergestellt war :gruebel:

Meflin 30. Jun 2004 17:55

Re: Indy TCP Client: OnExecute? Thread verwenden?
 
du schreibst einfach writeln... und dann gleich dahinter variable := readln() (bin mir net ganz sicher ob der syntax stimmt) dann wir ddas was der server als nächstes zum client schickt (die antwort auf dein writeln) in der variable gespeichert. da brauchst du keinen extra thread dazu.

Tubos 30. Jun 2004 17:57

Re: Indy TCP Client: OnExecute? Thread verwenden?
 
Zitat:

du schreibst einfach writeln... und dann gleich dahinter variable := readln() (bin mir net ganz sicher ob der syntax stimmt) dann wir ddas was der server als nächstes zum client schickt (die antwort auf dein writeln) in der variable gespeichert. da brauchst du keinen extra thread dazu.
Nur friert dann das Hauptprogramm kurz ein wenn die Antwort nicht schnell genug kommt.

Um zurück zur ursprünglichen Frage zu kommen:
Ich muss also einen Thread erzeugen? *g*

Meflin 30. Jun 2004 17:59

Re: Indy TCP Client: OnExecute? Thread verwenden?
 
du musst garnicht. natürlich kannst du. aber ein idAntiFreeze tuts auch.

Tubos 30. Jun 2004 18:22

Re: Indy TCP Client: OnExecute? Thread verwenden?
 
Zitat:

du musst garnicht. natürlich kannst du. aber ein idAntiFreeze tuts auch.
Danke! :D

Meflin 30. Jun 2004 18:24

Re: Indy TCP Client: OnExecute? Thread verwenden?
 
no prob. für diese triviale lösung war das eine schwere geburt ;-) ...


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:06 Uhr.
Seite 1 von 2  1 2      

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