AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte Netzwerkprotokoll mit Verschlüsselung, Kompression, Prioritätssystem und vielem mehr
Thema durchsuchen
Ansicht
Themen-Optionen

Netzwerkprotokoll mit Verschlüsselung, Kompression, Prioritätssystem und vielem mehr

Ein Thema von Zacherl · begonnen am 24. Sep 2012 · letzter Beitrag vom 16. Okt 2012
 
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#10

AW: Netzwerkprotokoll mit Verschlüsselung, Kompression, Prioritätssystem und vielem m

  Alt 16. Okt 2012, 08:42
Erstmal danke fürs testen euch beiden

Als Anregung würde ich Support von verschiedenen Socketkomponenten
vorschlagen, aber das steht glaube ich auch schon auf Deiner ToDo-List,
wenn ich mich recht an die Kommentare erinnere.
Genau, das hatte ich schon geplant. Ich werde es wohl so handhaben, dass für den Sende Teil ein zusätzliches Event ausgelöst wird, in dem der User dann mit der Socket Komponente seiner Wahl die Daten abschickt. Der Empfangsteil sollte ja schon Socket unabhängig sein.

Ist "Intelligenter Datenempfang" eine Alternative zur "Trennung von Datenpaketen"? Kann ich auch intelligent senden, also nicht nur Dateien, sondern auch Daten?
Definitiv. Wobei ich den "Intelligenter Datenempfang" logisch eher zu den "Einfachen Dateiübertragungen" zuordnen würde. Zur genaueren Erklärung: Wenn du "normale" Daten, also keine Dateien sendest, wird intern die TdxIDTPBaseTransfer Klasse erzeugt. Dort werden deine Daten in einen Buffer kopiert und dann nach und nach vom Sende Thread losgeschickt. Jetzt kann man sich vorstellen, was passiert, wenn man versuchen würde auf diese Weise beispielsweise einen Film (sagen wir mehrere Gigabyte) zu übertragen. Damit in diesem Falle nicht erst alle Daten in den Speicher geladen werden müssen, wird für Dateitransfers die TdxIDTPFileTransfer Klasse verwendet, welche die übergebene Datei öffnet und bei jedem Cycle des Sende Threads die Daten dynamisch per ReadFile() ausliest und abschickt.
Beim Empfänger kommt dann der "Intelligente Datenempfang" ins Spiel. Hat man einfache Daten, sagen wir mal einen Steuerbefehl mit ein paar Parametern, würde man diesen ja gerne "in einem Rutsch" empfangen, ohne ggfls. erst die Teilpakete wieder zusammensetzen zu müssen. Für diesen Zweck gibt es im OnTransferInit Event den variablen Parameter AutoCollectData. Ist diese Funktion aktiviert, sammelt der IOHandler alle eingehenden Daten eines Transfers in einen Buffer und löst das OnTransferFinish Event erst bei vollständigem Eingang aller Daten aus. Für große Dateien macht dies natürlich keinen Sinn, da man hier schnell wieder Speicherprobleme bekommen würde. Außerdem will man bei einem Dateitransfer die Datei in der Regel auch auf Empfängerseite wieder als solche speichern und nicht im RAM behalten. Hier kann man dann AutoCollectData deaktivieren, was bewirkt, dass bei jedem Teilpaket das OnTransferData Event aufgerufen wird. Das erlaubt es dann die Daten z.b. analog zum Sender per WriteFile() wieder in einer Datei abzulegen.
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  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 19:40 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