Autor Beitrag
Geri
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 78

XP
RAD Studio XE pro
BeitragVerfasst: Mi 11.01.06 13:43 
Hallo zusammen

Ich habe in Delphi 2005 ein einfache TCP client- und eine TCP server-Anwendung erstellt. Der Server soll, nachdem der Client daten geschickt hat, die daten verarbeiten und dem Client sofort antworten, indem er ihm ein Datenpaket zurück schickt. In der Zwischenzeit wartet der Client auf die Daten des Serves. Wenn ich die beiden Anwendungen allerdings laufen lasse, dann erhält der Server Daten. Je nachdem der Client aber auf die Daten wartet verändern sich die Daten komischerweise. Gibt es hier evtl. ein Problem mit gemeinsam genutzten Puffer? Ich kann das Problem leider nicht lösen.

wenn ich mit dem Programmm z.B. den Wert 123 schicke dann erhält der Server komischerweise den
input Data vom Server Command: 0 DataLen: 242 Warum??

Wäre nett, falls mir hier vielleicht jemand einen Tipp geben kann wo das Problem liegt. Im Anhang habe ich die abgespeckte Client- und Serveranwendung hineingepackt.

Vielen Dank für Eure Hilfe
Geri
Einloggen, um Attachments anzusehen!
thkerkmann
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 20

Windows 7
Delphi 2010 Professional
BeitragVerfasst: So 15.01.06 14:58 
Hallo,

Versuch doch mal anstelle der festen RecvLength := 6 lieber RecvLength=sizeOf(inData) zu verwenden.
Im Serverprogramm machst Du das ja schon.
Wegen Compileroptimierungen und Alignments kann man nie wissen, wie gross dieser Datenbereich genau ist.

und ebenso für die anderen Längenwerte lieber sizeOf().

Ich kann es leider nicht probieren mangels D2005 - habe nur die personal edition und die hat keine Socket Komponenten.

Gruss

Thomas