AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi SocketAdapter - Protokoll - Wie aufbauen?
Thema durchsuchen
Ansicht
Themen-Optionen

SocketAdapter - Protokoll - Wie aufbauen?

Ein Thema von Zacherl · begonnen am 12. Nov 2007 · letzter Beitrag vom 13. Nov 2007
Antwort Antwort
shmia

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

Re: SocketAdapter - Protokoll - Wie aufbauen?

  Alt 13. Nov 2007, 17:01
Um ein ähnliches Problem habe ich mir auch schon Gedanken gemacht.
Angenommen man möchte EMails per SMTP versenden.
Sobald der Socket offen ist, benötigt man ja nur noch Lese- und Schreibfunktionen.
Welcher Art von Socket oder ob man über einen Proxyserver geht oder die Daten verschlüsselt ist ja mal egal.
Man könnte sich auch folgendes Szenarios vorstellen:
Code:
SMTP-Protokoll <---> [HTTP Packer/Entpacker] <---> [TCP Socket] <-> Netzwerk
SMTP-Protokoll <---> [Secure Socket Layer] <--> [Serielle Schnittstelle]
An den Stellen, die mit "<--->" gekennzeichnet sind, besteht eine bidirektionale Schreib-/Leseverbindung.
Ich nenne dies mal eine "Pipeline".
Die Pipeline könne man über folgendes Interface implementieren:
Delphi-Quellcode:
  IPipeline = interface;
  IPipelineCallback = interface(IUnknown)
     procedure DataAvailable(Sender:IPipeline);
  end;

  IPipeline = interface(IUnknown)
      function Read(var Buffer; Count: Longint): Longint;
      function Write(const Buffer; Count: Longint): Longint;
      function GetReadSize: Integer; // Anzahl der Bytes, die mit Read gelesen werden können
      procedure SetCallBack(cb:IPipelineCallback);
  end;
Damit der Benutzer von IPipeline nicht ständig fragen muss, ob Daten zum Lesen vorhanden ist, gibt es das Interface IPipelineCallback.
Mit diesem Ansatz könnte man nun Blöcke hintereinander schalten.
Code:
SMTP-Protokoll <---> [StreamCompressor/Dekompressor] <---> TCP Socket
Der StreamCompressor/Dekompressor würde also einerseits das Interface IPipeline implementieren, damit es vom
SMTP-Protokoll benützt wird,
andererseits benützt es ein IPipeline-Interface, das von TCP Socket implementiert wird.
Auf diese Weise entsteht ein Baukastensystem, deren Teile man zu Ketten zusammenschalten kann.
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 01:39 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