AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Indy TCP Server - Record versenden ?!
Thema durchsuchen
Ansicht
Themen-Optionen

Indy TCP Server - Record versenden ?!

Ein Thema von DelphiPeter · begonnen am 6. Feb 2012 · letzter Beitrag vom 8. Mai 2012
Antwort Antwort
bernhard_LA

Registriert seit: 8. Jun 2009
Ort: Bayern
1.138 Beiträge
 
Delphi 11 Alexandria
 
#1

AW: Indy TCP Server - Record versenden ?!

  Alt 8. Mai 2012, 15:55
falls das thema noch aktuelle ist ?

unter source forge demo indy 10 habe ich mehrer komplette lösungen eingestellt
  Mit Zitat antworten Zitat
shmia

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

AW: Indy TCP Server - Record versenden ?!

  Alt 8. Mai 2012, 19:15
...demo indy 10
http://sourceforge.net/projects/indy10clieservr/

Das Problem ist nur, dass deine Demos nicht sauber trennen zwischen Datenaufbereitung (Protokoll) und Datentransport (TCP/IP).
Leider hat diesbezüglich Indy selbst grosse Designfehler.
Nehmen wir z.B. die Klasse TIdSmtp als Umsetzung des SMTP-Protokolls.
Gibt es aus Sicht von SMTP einen Unterschied zwischen TCP, Named Pipes oder Serieller Schnittstelle?
Antwort: Nein, sobald TCP, Named Pipes oder ser. Port geöffnet sind verhalten sie sich gleich.
Man kann Daten lesen und Daten schreiben; es ist ganz einfach ein bidirektionaler Stream.

Man hätte der Klasse TIdSmtp also über ein Property von Aussen diesen bidirektionaler Stream geben sollen.
Somit wäre es egal ob sich dahinter TCP/IP, SCTP/IP oder sonstwas verbirgt.
Stattdessen hat man aber eine sehr tiefe Klassenhierachie geschaffen:
Code:
TIdSmtp <- TIdSmtpBase <- TIdMessageClient <- TIdExplicitTLSClient <- TIdTCPClientCustom <- TIdTCPConnection <- TIdComponent <- TIdBaseComponent <- TIdInitializerComponent <- TIdNativComponent
Hier kann man als Analogie auch die Klassen TQuery, TDataSource und TDBGrid hernehmen.
Dem DBGrid ist es egal vorher die Daten kommen und wohin sie geschrieben werden.
Genau so hätte auch Indy designed werden müssen (der kleine Nachteil ist, dass man so 3 statt nur einer Komponente braucht) .

Daher:
das Protokoll aus Anwendungsebene (OSI Level 7) muss unbedingt vom Datentransport getrennt gehalten werden!
Versuche doch einfach mal deine Demos so umzubauen, dass man sie wahlweise mit Indy oder mit der Unit ScktComp benützen kann (aber ohne Code zu duplizieren).
Andreas
  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 20:47 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