Entwickler-Ecke

Internet / Netzwerk - indy9 - Datenübertragung TCP/IP


schippi - Do 15.11.07 17:53
Titel: indy9 - Datenübertragung TCP/IP
Hallo!
ich stell grad mein Programm um, indem ich die socket-Komponenten durch indy-Komponenten austausch.
Ich möchte ein Datenpaket vom client zum Server übertragen. Das Datenpaket ist aufgebaut aus 4 Integer-Variablen und dann noch eine Variable beliebiger Größe (beispielsweise String, ByteVektor, Stream oder sonst was). Was für eine Methode oder Konzept würdet ihr bei indy9 verwenden um solche Daten zu versenden, so dass man bei der Empfängerseite aber sicher sein kann, dass alle Daten eingetroffen sind. Oder würdet ihr vielleicht aus einem Paket mehrere Pakete machen? Bin für jede Anregung offen...

Grüße!


schippi - Mo 19.11.07 15:50

Hallo,
ich hab mich jetzt für folgende Möglichkeit entschieden:

Delphi-Quelltext
1:
2:
Client.WriteCardinal(SizeStream); // Größe des Streams senden
Client.WriteStream(Stream); // Stream senden

is ja eigentlich relativ einfach.
Aber wenns jetzt einfach mal funktionieren würden, wäre es anscheinend wieder zu einfach.
Weiß vielleicht jemand was indy für ein Problem mit

Delphi-Quelltext
1:
Server.Active := False;                    
hat?
Da kommt immer die Fehlermeldung: 'Terminate Thread Timeout'
Das passiert z.b. auch bei dem Demo das bei indy dabei ist.(IdTCPDemo). Wenn man den Client mit dem Server verbindet und den Server dann schließt (FormClose) kommt diese Meldung.