TIdUDPBase.SendBuffer(AHost: string; const APort: Integer; const ABuffer : TIdBytes);这里提供发送的都是byte浮点型的值要如何发送。谢谢!

解决方案 »

  1.   

    var
      Bufs : TIdBytes;
      n : Single;
      d : Double;
    begin
      n := 10.12;  //单精度浮点数
      SetLength(Bufs , SizeOf(n));
      PSingle(Bufs)^ := n;
      IdUDPClient1.SendBuffer('192.168.1.2' , 100 , Bufs);
      d := 102.23; //双精度浮点数
      SetLength(Bufs , SizeOf(d));
      PDouble(Bufs)^ := d;
      IdUDPClient1.SendBuffer('192.168.1.2' , 100 , Bufs);end;
      

  2.   


      d := 102.23; //双精度浮点数
      d2 := 12342.45;
      SetLength(Bufs , SizeOf(Double)*2);
      PDouble(@Bufs[0])^ := d;
      PDouble(@Bufs[8])^ := d2;  //类推或者循环多个数
      IdUDPClient1.SendBuffer('192.168.1.2' , 100 , Bufs);
      

  3.   

    和 UDP 无关吧   主要是 sizeof(double)
    双精度就是8字节嘛