Guten Tag zusammen,
ich bin gerade dabei eine Server, Client - Anwendung zu schreiben.
Dazu benutze ich die Komponenten ServerSocket und ClientSocket.
Nun möchte ich eigentlich gerne ein Record bzw. alternativ ein Array of String versenden.
Und zwar vom Server zum Client.
Dazu benutze ich folgenden Code im ServerSocket:
Delphi-Quellcode:
procedure TForm1.BitBtn1Click(Sender: TObject);
var paramRec: TParamRec;
ms: TMemoryStream;
ar: Array [0..4] of String;
begin
ms := TMemoryStream.Create;
paramRec.param1 := 'Hello';
paramRec.param2 := 'World';
ms.Write(paramRec, SizeOf(paramRec));
ms.Position := 0;
ServerSocket1.Socket.Connections[0].SendStream(ms);
end;
Das Problem ist, dass ich nicht weiß, wie ich dem Stream im ClientSocket abfange.
Ich hab es jetzt mal so vesucht, aber bekomme ich da nichts gescheites bei raus, bzw. weiß nicht, wie ich den Stream wieder zu nem Record bekomme.
Alternativ wenns einfacher geht, würde auch ein Array of String gehen.
Delphi-Quellcode:
procedure TForm1.ClientSocket1Read(Sender: TObject; Socket: TCustomWinSocket);
var paramRec: TParamRec;
ms: TMemoryStream;
begin
ms := TMemoryStream.Create;
ms.Position := 0;
Socket.ReceiveBuf(ms, Socket.ReceiveLength);
end;
Ich hoffe, ihr könnt mir helfen.
Das Senden und Empfangen von einzelnen Strings via "SendText" funtkioniert wurnderbar.