Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi idtcpserver - herausfinden was empfangen wird (https://www.delphipraxis.net/96606-idtcpserver-herausfinden-empfangen-wird.html)

scrat1979 29. Jul 2007 11:29

Re: idtcpserver - herausfinden was empfangen wird
 
Zitat:

Zitat von Gausi
Ich klinke mich hier mal ein, weil ich gerade vor dem selben Problem stehe. Ich möchte auch diverse Sachen übermitteln. Ein paar Integer, Strings, aber auch kompliziertere Datenstrukturen oder ganze Dateien. Mein Ansatz wäre, das einfach über Streams zu regeln, die ich versende. Auf der einen Seite wird ein Stream generiert, gesendet und an der anderen Seite nach dem Empfang wieder aufgedröselt. In den Stream würde ich dann einen Header packen, der darüber Aufschluss gibt, was für Daten in dem Stream sind, damit die entsprechend interpretiert werden können. Ist der Ansatz ok, oder kompletter Unsinn? Die Kommunikation würde dann mehr oder weniger komplett über IoHandler.read(aStream) bzw. IoHandler.write(astream) laufen.

Wow, bin ja froh, daß ich nicht der einzige mit diesem Problem bin :-)
Nein, mal im Ernst. Genau die von Dir genannten komplexen Datenstrukturen sind im Endeffekt das Problem. Simple Strings und INtegers kann man ohne weiteres mit den o.g. "Terminatorzeichen-Protokoll" elegant versenden. Nur bei Streams (z.B. Dateien) kommt man da (denke ich zumindest...) schnell an die Grenzen.

SCRaT

alias5000 29. Jul 2007 13:41

Re: idtcpserver - herausfinden was empfangen wird
 
Das wäre dann ein Binärprotokoll ;) siehe Tutorials von Narses ;)

Gausi 29. Jul 2007 13:53

Re: idtcpserver - herausfinden was empfangen wird
 
Joah, das Tutorial habe ich mal angeguckt, aber 100 Seiten sind da doch erstmal abschreckend. Wenn ich richtig sehe, dann behandelt er da ja auch nicht die Indy-Komponenten, die einem wohl viel Arbeit abnehmen. Meine Idee mit den Streams wären irgendwie nur ein paar Zeilen Code:

Delphi-Quellcode:
//Client:
Erstelle Stream
Schreibe ID in Stream
Schreibe Daten in Stream // Halt so, wie man Daten in Streams speichert. Strings mit ner Längen-Info vornedran etc.
Sende Stream             // Größe des Streams wird auf Wunsch vornedran gepackt
...
//Server:
Empfange Stream
Lese ID aus Stream
Lese Daten aus Stream
verarbeite Daten entsprechend
erstelle ggf. einen Stream mit der Antwort
Sende Antwortstream
...
//Client
empfange Antwortstream
verarbeite Antwort
- fertig.
und dass man dann darüber 100 Seiten schreibt, verwirrt mich etwas, deswegen vermute ich bei mir noch irgendeinen Denkfehler. ;-)


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:08 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz