AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Indy TCP Client: OnExecute? Thread verwenden?
Thema durchsuchen
Ansicht
Themen-Optionen

Indy TCP Client: OnExecute? Thread verwenden?

Ein Thema von Tubos · begonnen am 30. Jun 2004 · letzter Beitrag vom 30. Jun 2004
Antwort Antwort
Seite 1 von 2  1 2      
Tubos

Registriert seit: 25. Feb 2004
Ort: Yspertal (Niederösterreich)
1.014 Beiträge
 
Delphi 7 Personal
 
#1

Indy TCP Client: OnExecute? Thread verwenden?

  Alt 30. Jun 2004, 15:40
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?
Lukas
  Mit Zitat antworten Zitat
Benutzerbild von Meflin
Meflin

Registriert seit: 21. Aug 2003
4.856 Beiträge
 
#2

Re: Indy TCP Client: OnExecute? Thread verwenden?

  Alt 30. Jun 2004, 17:31
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...???
  Mit Zitat antworten Zitat
Tubos

Registriert seit: 25. Feb 2004
Ort: Yspertal (Niederösterreich)
1.014 Beiträge
 
Delphi 7 Personal
 
#3

Re: Indy TCP Client: OnExecute? Thread verwenden?

  Alt 30. Jun 2004, 17:43
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?
Lukas
  Mit Zitat antworten Zitat
Benutzerbild von Meflin
Meflin

Registriert seit: 21. Aug 2003
4.856 Beiträge
 
#4

Re: Indy TCP Client: OnExecute? Thread verwenden?

  Alt 30. Jun 2004, 17:47
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!
  Mit Zitat antworten Zitat
Tubos

Registriert seit: 25. Feb 2004
Ort: Yspertal (Niederösterreich)
1.014 Beiträge
 
Delphi 7 Personal
 
#5

Re: Indy TCP Client: OnExecute? Thread verwenden?

  Alt 30. Jun 2004, 17:54
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
Lukas
  Mit Zitat antworten Zitat
Benutzerbild von Meflin
Meflin

Registriert seit: 21. Aug 2003
4.856 Beiträge
 
#6

Re: Indy TCP Client: OnExecute? Thread verwenden?

  Alt 30. Jun 2004, 17:55
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.
  Mit Zitat antworten Zitat
Tubos

Registriert seit: 25. Feb 2004
Ort: Yspertal (Niederösterreich)
1.014 Beiträge
 
Delphi 7 Personal
 
#7

Re: Indy TCP Client: OnExecute? Thread verwenden?

  Alt 30. Jun 2004, 17:57
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*
Lukas
  Mit Zitat antworten Zitat
Benutzerbild von Meflin
Meflin

Registriert seit: 21. Aug 2003
4.856 Beiträge
 
#8

Re: Indy TCP Client: OnExecute? Thread verwenden?

  Alt 30. Jun 2004, 17:59
du musst garnicht. natürlich kannst du. aber ein idAntiFreeze tuts auch.
  Mit Zitat antworten Zitat
Tubos

Registriert seit: 25. Feb 2004
Ort: Yspertal (Niederösterreich)
1.014 Beiträge
 
Delphi 7 Personal
 
#9

Re: Indy TCP Client: OnExecute? Thread verwenden?

  Alt 30. Jun 2004, 18:22
Zitat:
du musst garnicht. natürlich kannst du. aber ein idAntiFreeze tuts auch.
Danke!
Lukas
  Mit Zitat antworten Zitat
Benutzerbild von Meflin
Meflin

Registriert seit: 21. Aug 2003
4.856 Beiträge
 
#10

Re: Indy TCP Client: OnExecute? Thread verwenden?

  Alt 30. Jun 2004, 18:24
no prob. für diese triviale lösung war das eine schwere geburt ...
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 18:03 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