从INDY9升级到INDY10的改正方法

1、TIdUDPClient

      INDY9:

      TIdUDPClient1.SendBuffer('127.0.0.1',9999,Request,SizeOf(Request));
      TIdUDPClient1.ReceiveBuffer(ResponseBlock,SizeOf(ResponseBlock));

      INDY10:

      VAR:Temp:Tbytes;

            TIdUDPClient1.SendBuffer('127.0.0.1', 9999, RawToBytes(Request, SizeOf(Request)));
            SetLength(Temp, SizeOf(ResponseBlock));   

            TIdUDPClient1.ReceiveBuffer(Temp);
            bytestoraw(Temp, ResponseBlock, SizeOf(ResponseBlock));

2、TIdUDPServer

    INDY9:

    procedure TfrmMain.IdUDPServer1UDPRead(Sender: TObject; AData: TStream;
    ABinding: TIdSocketHandle);

   ......

   if AData.Size = SizeOf(Request) then
   begin
        AData.Read(Request,SizeOf(Request));

        .........

        ABinding.SendTo(ABinding.PeerIP,ABinding.PeerPort,FileInfo,SizeOf(FileInfo));

   INDY10:

   procedure TfrmMain.IdUDPServer1UDPRead(Sender: TObject; AData: TBytes;
   ABinding: TIdSocketHandle);

   .......

   if length(AData)= SizeOf(Request) then
   begin
       //将接收到的Tbytes信息转化为Trequest类型的数据结构Request中
      BytesToRaw(AData, Request, SizeOf(TRequest)); 

      ABinding.SendTo(ABinding.PeerIP,ABinding.PeerPort,rawtobytes(FileInfo,SizeOf(FileInfo)));

 

转载于:https://www.cnblogs.com/qq528/archive/2008/12/26/1363006.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值