Eine Structur:
Delphi-Quellcode:
TUDPPacket = record
case ID : integer of
$00 : (ClientReceive00 : TSearchFile);
$11 : (ClientReceive11 : TSearchFile);
******************************************
TSearchFile = record
SFilename : string[100];
SMD5 : string[50];
SArtist : string[50];
STitle : string[50];
STyp : string[4];
SSize : String[10];
S_IP : string[16];
end;
soll per UDP socket (
Indy 10 ) versendet verden..
die methode sendbuffer von idUPDClient hat als argument ein Tbytes (array of byte)
daher versende ich folgendermaßen
Delphi-Quellcode:
procedure TForm1.UDPSendMyRecord(
ip :
string; SomeRecord: TUDPPacket);
var
dummy : Tbytes;
begin
setlength(dummy, sizeof(SomeRecord));
move(SomeRecord, dummy, sizeof(dummy));
form1.IdUDPClient1.Host :=
ip;
form1.IdUDPClient1.SendBuffer(dummy);
end;
leider beim empfangen
Delphi-Quellcode:
procedure TForm1.IdUDPServer1UDPRead(Sender: TObject; AData: TBytes;
ABinding: TIdSocketHandle);
var
paketik : TUDPPacket;
begin
move(Adata, paketik, sizeof(adata));
*********************************
wird nichts empfangen.. was könnte falsch sein...!? Bzw. gibt es eine andrere methode eingene Records per UDP zu senden..!?