Einzelnen Beitrag anzeigen

romber

Registriert seit: 15. Apr 2004
Ort: Köln
1.164 Beiträge
 
Delphi 10 Seattle Professional
 
#1

Indy TCP Server/Client: Streams senden/empfangen und Unterschied zu Strings???

  Alt 20. Apr 2014, 14:55
Hallo!
Frohe Ostern und schöne Feiertage!

Ein Server (der selber ein Webservice-Client ist) empfängt pro Minute mehrere Hundert einzelne String-Datensätze, die er dann an alle verbundenen Clients weiterleitet. Die Übertragung geschieht mittels TIdTCPServer/TIdTCPClient. Bis jetzt habe ich die Daten auch als Strings an die Clients geschickt. Auf der Clientseite wird jeder empfangene Datensatz in einen XML-Reader geladen. Der XML-Reader benutzt dafür eine Funktion namens LoadFromXML, die nichts anderes macht, als die Daten in ein Stream zu laden, um dann mittels LoadFromStream an den Reader zu übergeben. Jetzt überlege ich mir, ob es nicht besser wäre, die Datensätze direkt als Streams zu übertragen. Dazu hätte ich einige Fragen an die erfahrenen Experten:

1. Ist die Datenübertragung mittels Streams grundsätzlich schneller oder langsammer als die mit Strings? Macht es überhaupt Sinn, auf Streams umzubauen?
2. Wie schon erwähnt, müssen permanent mehrere Hundert einzelne Datensätze pro Minute hintereinander übertragen werden. Ist die Übertragung mittels Streams überhaupt dafür geeignet?
3. Im Fall von Strings muss ich jeden zu übertragenen String mit einer eindeutigen Zeichenkombination beenden, damit der Client die "zusammengewachsene" Datenpakete auseinander halten kann. Muss ich irgendwas in der Art auch für Streams anwenden?
4. In Foren wird es viel diskutiert über die Übertragung von Daten in Records (auch mittels Streams). Welche Vorteile könnten Records in meinem Fall haben?

Im Voraus vielen Dank!

Geändert von romber (20. Apr 2014 um 15:13 Uhr)
  Mit Zitat antworten Zitat