procedure TForm1.Button1Click(Sender: TObject);
var
    buf:array[1..2] of sample;
    stream:tmemorystream;
begin
    with buf[1] do
    begin
        B:='hello';
        a:=4;
    end;
    with buf[2] do
    begin
       b:='hey';
       a:=3;
    end;
    stream:=tmemorystream.create;
    stream.Write(buf,sizeof(buf));
    nmudp1.SendStream(stream);
    stream.free;
end;procedure TForm1.NMUDP1DataReceived(Sender: TComponent;
  NumberBytes: Integer; FromIP: String; Port: Integer);
var
    buf:array[1..2] of sample;
    stream:tmemorystream;
begin
    stream:=tmemorystream.create;
    nmudp1.ReadStream(stream);
    stream.Read(buf,numberbytes);
    stream.free;
    showmessage(buf[1].b);
    showmessage(buf[2].b);
end;