Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi TCP Kommunikation - wie am besten realisieren (https://www.delphipraxis.net/100182-tcp-kommunikation-wie-am-besten-realisieren.html)

meisteralex 24. Sep 2007 09:53


TCP Kommunikation - wie am besten realisieren
 
Hi Leute, ich brauch für mein Projekt eine Möglichkeit zur TCP-Kommunikation
Ausgetauscht werden nur PlainText - Informationen bzw. XML-Strings.

Wie realisiere ich das am besten ? Über Indys oder Sockets ? wo liegen die vor und nachteile ?

Phoenix 24. Sep 2007 10:06

Re: TCP Kommunikation - wie am besten realisieren
 
Auch die Indys nutzen intern die Sockets. Es ist also technisch gesehen exakt das gleiche.
Nur abstrahieren die Indys etwas mehr - bei direkter Nutzung der Sockets musst Du Dich selber noch um das Protokoll kümmern.

Bei Plain Text würde ich persönlich jetzt spontan zu http als Protokoll greifen. Bei XML zu SOAP. Das Protokoll ist in erster Linie für die Übertragung von Text ausgelegt und hat sich dafür bewährt. WebServices sind ja im Prinzip auch nix anderes als via http übertragene XML-Dokumente.

meisteralex 24. Sep 2007 11:09

Re: TCP Kommunikation - wie am besten realisieren
 
hmm würde ja auch gerne http verwenden.....
gibts da irgendwelche nachteile durch ?

meisteralex 24. Sep 2007 11:28

Re: TCP Kommunikation - wie am besten realisieren
 
noch ne frage: wie realisiere ich bei der http - variante ereignisse die der server dem client mitteilen will?

Chewie 24. Sep 2007 17:59

Re: TCP Kommunikation - wie am besten realisieren
 
Zitat:

Zitat von meisteralex
hmm würde ja auch gerne http verwenden.....
gibts da irgendwelche nachteile durch ?

Zitat:

Zitat von meisteralex
noch ne frage: wie realisiere ich bei der http - variante ereignisse die der server dem client mitteilen will?


Exakt das ist der Nachteil - bei HTTP überträgst du deine Daten, und dann ist die Verbindung beendet. Es besteht keine kontinuerliche Verbindung, deswegen ist eine Kontaktaufnahme des Servers mit dem Client nicht möglich.

Torpedo 24. Sep 2007 18:06

Re: TCP Kommunikation - wie am besten realisieren
 
Zitat:

Zitat von Chewie
Exakt das ist der Nachteil - bei HTTP überträgst du deine Daten, und dann ist die Verbindung beendet. Es besteht keine kontinuerliche Verbindung, deswegen ist eine Kontaktaufnahme des Servers mit dem Client nicht möglich.

Bei HTTP/1.1 kann man die Verbindung doch aufrecht erhalten, oder geht das auch nur eine gewisse Zeit?
BTW Er muss sich ja nicht 100% an den Standard halten. ;)

meisteralex 25. Sep 2007 06:07

Re: TCP Kommunikation - wie am besten realisieren
 
Ja es gibt eine KeepAlive - Methode, jedoch wird dieses aufrechthalten der Verbindung schnell von Firewalls geblockt.

Was haltet ihr von der Realisierung jede Sekunde beim Server nachzufragen ob es was neues gibt ?

oki 25. Sep 2007 06:39

Re: TCP Kommunikation - wie am besten realisieren
 
Moin,

ich mach sowas üblicherweise über die stink normalen Sockets. Die Verbindung steht und bleibt erhalten bis man disconnected. Hat einer was mitzuteilen so sendet er das (Client oder Server) und die Gegenseite bekommt das automatisch per Ereignis mit (read). Nachteil ist, dass man sein eigenes Protokoll entwerfen muss. Handelt es sich aber um relativ simple Themen ist das in der Regel kein Aufwand. Man schafft sich im Grunde kleine Identifyer z.B.:
<USERMSG>
<SYSEVENT> usw.
mit denen man die Übertragung des entsprechenden datenstroms einleitet und gegebenenfalls am Ende markiert. Dazwischen stehen die Nutzdaten. An Hand des Identifiers kann man dann auf der Empfängerseite entsprechend reagieren und die Daten verarbeiten.

Gruß oki


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:20 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