在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 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中该怎么实现阿?
再说,到网上搜搜看有没有demo
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]);
还是接受了新些版本的INDY..