gpt4 book ai didi

Delphi 将字节数组转换为 TBytes - UDP 重定向?

转载 作者:行者123 更新时间:2023-12-02 08:40:08 30 4
gpt4 key购买 nike

procedure TForm1.UDPUDPRead(AThread: TIdUDPListenerThread; 
AData: array of Byte; ABinding: TIdSocketHandle);
var
buffer : TBytes;
begin
SetLength(buffer, Length(AData));
buffer := @AData[0];
end;

此代码会导致访问冲突。

在 Delphi XE3 中从字节数组转换为TBytes的正确方法是什么?

最佳答案

您需要复制缓冲区。

Count := Length(AData);
SetLength(buffer, Count);
if Count <> 0 then
Move(AData[0], buffer[0], Length(AData));

我有一种感觉,Indy 的这一部分被 Embarcadero 搞砸了。请注意数组按值传递的可疑之处。如果我没记错的话,存储库中的 Indy 版本更好。

关于Delphi 将字节数组转换为 TBytes - UDP 重定向?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19641318/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com