AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Grundsatz Fragen Client/Server Anw. via Indy10
Thema durchsuchen
Ansicht
Themen-Optionen

Grundsatz Fragen Client/Server Anw. via Indy10

Ein Thema von TUX_der_Pinguin · begonnen am 23. Apr 2009 · letzter Beitrag vom 24. Apr 2009
 
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#2

Re: Grundsatz Fragen Client/Server Anw. via Indy10

  Alt 23. Apr 2009, 14:42
Wie du ganz richtig erkannt hast ist das Protokoll zwischen Client und Server der eigentliche Knackpunkt.
Der Datentransport über TCP/IP (oder Named Pipes, ser. Schnittstelle,...) ist da eigentlich eher nebensächlich.

Es gibt nun verschiedene Arten wie man diese Protokolle aufziehen kann.
Eine einfache Art wäre z.B. ein zeilenbasiertes Befehl- und Antwort Protokoll.
Ein gutes Beispiel dafür ist SMTP, POP3 oder FTP.
Der Client schickt eine Textzeile (abgeschlossen mit CR-LF) als Befehl und der Server antwortet mit einem Status.
Sehr viele Internetprotokolle sind so aufgebaut.

Vorteile: einfach, kann mit einer Teminalemulation von Hand gut getestet werden
Nachteil: schlecht erweiterbar, unflexibel, nicht für komplexe Daten geeignet

Dann gibt es Protokolle, bei denen XML als Grundlage benützt wird.
Alle Daten und Befehle werden als XML verpackt und verschickt.
z.B. XMPP und darauf aufbauend Jabber.

Vorteile: beliebig erweiterbar, für komplexe, hierarchische Daten geeignet
Nachteile: aufwändig, benötigt hohe Netzbandbreite (ca. 95% der Daten sind "Luft")
man kann die XML-Daten vor dem Senden auch komprimieren (zip) und damit den Netzbandbreite reduzieren

Eine sehr interessante Variante zu XML ist JSON.
Mit JSON kann man auch hierarchische Daten aufbauen ohne so weitscheifend wie XML zu sein.

Dann gäbe es noch das SDXF: Structured Data eXchange Format
mit dem man Daten binär und kompakt übertragen kann.
Der Nachteil von binären Protokollen ist aber, dass man nicht so einfach Debuggen kann.

PS:
das Schlechteste, was man tun kann ist binäre Records zu übertragen.
Das ist zwar schnell programmiert, aber sehr unflexibel und schlecht zu portieren.
Verschiedene Programmversionen von Client und Server sind nach Änderungen an den Records nicht mehr kompatibel.
Ein gravierender Nachteil dabei ist auch, dass man Client und Server gleichzeitig entwickeln muss.
Bei allen textbasierten Protokollen kann man zuerst mit dem Server beginnen.
Der Server kann auch leicht mit einem Terminalprogramm getestet werden.
Andreas
  Mit Zitat antworten Zitat
 


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 04:55 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