AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi TCP Kommunikation - wie am besten realisieren
Thema durchsuchen
Ansicht
Themen-Optionen

TCP Kommunikation - wie am besten realisieren

Ein Thema von meisteralex · begonnen am 24. Sep 2007 · letzter Beitrag vom 25. Sep 2007
Antwort Antwort
meisteralex

Registriert seit: 22. Nov 2005
173 Beiträge
 
#1

TCP Kommunikation - wie am besten realisieren

  Alt 24. Sep 2007, 10:53
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 ?
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.639 Beiträge
 
#2

Re: TCP Kommunikation - wie am besten realisieren

  Alt 24. Sep 2007, 11:06
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.
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
meisteralex

Registriert seit: 22. Nov 2005
173 Beiträge
 
#3

Re: TCP Kommunikation - wie am besten realisieren

  Alt 24. Sep 2007, 12:09
hmm würde ja auch gerne http verwenden.....
gibts da irgendwelche nachteile durch ?
  Mit Zitat antworten Zitat
meisteralex

Registriert seit: 22. Nov 2005
173 Beiträge
 
#4

Re: TCP Kommunikation - wie am besten realisieren

  Alt 24. Sep 2007, 12:28
noch ne frage: wie realisiere ich bei der http - variante ereignisse die der server dem client mitteilen will?
  Mit Zitat antworten Zitat
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: TCP Kommunikation - wie am besten realisieren

  Alt 24. Sep 2007, 18:59
Zitat von meisteralex:
hmm würde ja auch gerne http verwenden.....
gibts da irgendwelche nachteile durch ?
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.
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
Torpedo

Registriert seit: 21. Dez 2003
410 Beiträge
 
#6

Re: TCP Kommunikation - wie am besten realisieren

  Alt 24. Sep 2007, 19:06
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.
  Mit Zitat antworten Zitat
meisteralex

Registriert seit: 22. Nov 2005
173 Beiträge
 
#7

Re: TCP Kommunikation - wie am besten realisieren

  Alt 25. Sep 2007, 07:07
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 ?
  Mit Zitat antworten Zitat
oki

Registriert seit: 30. Dez 2002
Ort: Brandshagen
1.819 Beiträge
 
Delphi 2007 Professional
 
#8

Re: TCP Kommunikation - wie am besten realisieren

  Alt 25. Sep 2007, 07:39
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
42
  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 21:23 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