Möglicherweise habe ich den Fehler gefunden. Es scheint, laut anderer User, ein Compiler-Fehler zu sein.
TidBytes = TBytes = array of byte
Der Compiler scheint TidBytes wieder auf array of byte zu reduzieren. Deswegen gab es die Probleme bei OnUDPRead. Nimmt man also statt
procedure UDPServerRead(Sender: TObject; AData: TidBytes; ABinding: TIdSocketHandle);
diese Zeile
procedure UDPServerRead(Sender: TObject; AData: array of byte; ABinding: TIdSocketHandle);
meckert der Compiler nicht mehr.
Allerdings will dann die Funktion BytesToString nicht mehr, da diese TidBytes verlangt. Das habe ich dann so gelöst:
Delphi-Quellcode:
var
idBytes:TidBytes;
num_idBytes:integer;
i:integer;
num_idBytes:=length(AData);
setLength(idBytes, num_idBytes);
for i:=0 to num_idBytes-1 do
idBytes[i]:=AData[i];