Indy10 の IdUDPServer で文字列を受け取るとゴミが混じる

procedure TForm1.IdUDPServer1UDPRead Sender: TObject; AData: TBytes; ABinding: TIdSocketHandle);
begin
    Caption := PChar(AData);
end;

とかすると、データ末尾にゴミが混じることがある

procedure TForm1.IdUDPServer1UDPRead Sender: TObject; AData: TBytes; ABinding: TIdSocketHandle);
    var S: String absolute AData;
begin
    Caption := S;
end;

とするとよい
適宜 trim とかも利用

コメント