Delphi7和Delphi2006中的IdUDPServer1UDPRead不一样了,该怎么办?
在Delphi7版本中IdUDPServer的UDPServerUDPRead过程是这样的:
procedure TFrm_UDPServer.UDPServerUDPRead(Sender: TObject; AData: TStream;
ABinding: TIdSocketHandle);
var
DataStringStream: TStringStream;
s: String;
begin
DataStringStream := TStringStream.Create( ' ');
try
DataStringStream.CopyFrom(AData, AData.Size);
s := DataStringStream.DataString;
end;
而在Delphi2006版中却成了这样:
procedure TForm1.IdUDPServer1UDPRead(Sender: TObject; AData: TBytes;
ABinding: TIdSocketHandle);
两处中AData的定义类型不一样了,D7是TStream,在D2006却成了TBytes类型,那样DataStringStream.CopyFrom(AData, AData.Size);的使用就有问题了,想问一下要实现同样的D7种的接受数据,在D2006中该怎么实现阿?
[解决办法]
procedure TForm1.IdUDPServer1UDPRead(Sender: TObject; AData: TBytes;
ABinding: TIdSocketHandle);
var
s: String;
begin
s:=PChar(@AData);
[解决办法]
这样
procedure TForm1.IdUDPServer1UDPRead(Sender: TObject; AData: TBytes;
ABinding: TIdSocketHandle);
var
s: String;
begin
s:=PChar(@AData[0]);