AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi TCP - Daten von Server nach Client
Thema durchsuchen
Ansicht
Themen-Optionen

TCP - Daten von Server nach Client

Ein Thema von blablab · begonnen am 12. Mai 2007 · letzter Beitrag vom 13. Mai 2007
Antwort Antwort
blablab

Registriert seit: 3. Jan 2006
509 Beiträge
 
Delphi 7 Enterprise
 
#1

TCP - Daten von Server nach Client

  Alt 12. Mai 2007, 00:24
Hallo!

Ich hab mich nun entschieden 2 Computer mit dem TCP-Protokoll via der Indy-Komponenten IdTCPClient und IdTCPServer zu verbinden.
Bis jetzt hab ichs geschafft eine verbindung herzustellen. Jetzt habe ich allerdings ein Problem bei der Kommunikation zwischen CLient und Server.
Das Senden von Daten vom Client zum Server ist kein Problem, da es hier das Ereignis OnExecute gibt. Jedoch andersherum wirds schwierig...
Da gibts nähmlich kein OnExecute-Ereignis mehr und laut etlichen Internetseiten gibt es da nur die möglichkeit permanent nachzuschauen, ob der Server Daten gesendet hat. Dabei bleibt aber das Client-Programm stehen und deshalb gibts die AntiFreeze Komponente von Indy. Außerdem muss man dann noch das permante Abfragen ob neue Daten gekommen sind in einen extra Thread schreiben...

Ist das ganze ein schlechter Witz oder gibt es wirklich keine andere, schönere Lösung um Daten vom Server zum Client zu schicken???
Liegt das am TCP Protokoll, dass es nur so eine hässliche Lösung gibt, oder gibts noch eine andere Lösung???

Danke im Voraus!

Simon
  Mit Zitat antworten Zitat
Benutzerbild von richie
richie

Registriert seit: 21. Apr 2006
Ort: Dresden
127 Beiträge
 
#2

Re: TCP - Daten von Server nach Client

  Alt 12. Mai 2007, 00:36
Hi Simon,

Zitat von blablab:
Ist das ganze ein schlechter Witz oder gibt es wirklich keine andere, schönere Lösung um Daten vom Server zum Client zu schicken???
Kein schlechter Witz.

Leite dir doch einen Thread ab, in dem dauernd nach neuen Daten nachgeschaut wird. Da wirst du nicht umhin kommen. Dann stellst du das Timeout auf nur 5 msec und baust ein Sleep ein, fertig!

Zitat von blablab:
Liegt das am TCP Protokoll, dass es nur so eine hässliche Lösung gibt, oder gibts noch eine andere Lösung???
Das liegt nicht am Protokoll, da zum Beispiel der bei Delphi mitgelieferte TClientSocket das Event OnClientRead (oder so ähnlich) hat. Bei Indy gibt es aber nur diese eine Lösung (ich lass mich gern eines besseren belehren ...).
Robert
  Mit Zitat antworten Zitat
Benutzerbild von DataCool
DataCool

Registriert seit: 10. Feb 2003
Ort: Lingen
909 Beiträge
 
Delphi 10.3 Rio
 
#3

Re: TCP - Daten von Server nach Client

  Alt 13. Mai 2007, 19:44
Hi,

der beschriebene Weg mit einem Thread ist der einzig richtige !

Und die bei Delphi mitgelieferten Client- und Serversocket Komponenten machen nichts anderes,
Sie erzeugen inden einen Thread der alle xyz Millisekunden schaut ob Daten da sind, und wenn ja wird mit den Daten das Ereignis "OnClientRead" ausgelöst.

Wenn Du einen Thread + Indy IdTpClient verwendest, brauchst Du kein TAntifreeze, allerdings muss Du innerhalb des Threads wenn Du auf VCL-GUI Elemente zugreifst bzw. diese änderst "TThread.syncronize" verwenden.

Gruß DataCool
Der Horizont vieler Menschen ist ein Kreis mit Radius Null, und das nennen sie ihren Standpunkt.
  Mit Zitat antworten Zitat
Antwort Antwort


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 06:26 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