Einzelnen Beitrag anzeigen

Benutzerbild von XXcD
XXcD

Registriert seit: 19. Sep 2006
581 Beiträge
 
Delphi 2007 Professional
 
#1

TidTCP records senden/empfangen

  Alt 21. Jul 2009, 11:11
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)='02then
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?
  Mit Zitat antworten Zitat