Hallo,
ich kann komischerweise keine records vom idtcpserver zum idtcpclient senden.
Ich habe den Code aus folgendem Thread:
http://www.delphipraxis.net/internal...t.php?p=989054
Mein Code sieht so aus:
Server:
Delphi-Quellcode:
type
TSendChannellist = record
Channels: String;
end;
type
TChannel = class(TObject)
ID: String;
Name: string;
Port: Integer;
MaxUser: Integer;
Password: string;
end;
var
ChannelList: TList;
...
procedure TLogin.ServerExecute(AThread: TidContext);
var
SendChannelsList: TSendChannellist;
Buffer: TIdBytes;
Channel: TChannel;
begin
with AThread as TidContext do
begin
read:=Connection.Socket.ReadLn;
end;
//Channellist abrufen
if unpackpacketid(Read)='02' then
begin
Channel:=ChannelList.Items[0];
SendChannelsList.Channels:= Channel.Name;
Buffer := RawToBytes(SendChannelsList, sizeof (TSendChannellist));
TidContext(AThread).Connection.IOHandler.Write(Buffer);
end;
end;
Client:
Delphi-Quellcode:
type
TSendChannellist = record
Channels: String;
end;
PSendChannellist = ^TSendChannellist;
...
procedure TForm3.Button6Click(Sender: TObject);
var
Buffer: TIdBytes;
SendChannellist: PSendChannellist;
begin
IdTCPClient1.Socket.WriteLn(Edit2.Text);
New(SendChannellist);
IdTCPClient1.IOHandler.ReadBytes(Buffer, SizeOf (TSendChannellist));
BytesToRaw (Buffer, SendChannellist^, SizeOf (TSendChannellist));
Memo9.Lines.Add(SendChannellist.Channels);
end;
Beim Server läuft alles einwandfrei, doch beim Client kommt nur ein leerer String an.
Was kann denn da schiefgelaufen sein?