![]() |
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? |
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...??? |
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? |
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!
|
Re: Indy TCP Client: OnExecute? Thread verwenden?
Zitat:
Mit einem Thread? Oder gibt es da auch ein Ereignis? Zitat:
|
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.
|
Re: Indy TCP Client: OnExecute? Thread verwenden?
Zitat:
Um zurück zur ursprünglichen Frage zu kommen: Ich muss also einen Thread erzeugen? *g* |
Re: Indy TCP Client: OnExecute? Thread verwenden?
du musst garnicht. natürlich kannst du. aber ein idAntiFreeze tuts auch.
|
Re: Indy TCP Client: OnExecute? Thread verwenden?
Zitat:
|
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 16:59 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz