请高手帮我解释一下这个文件下载速度的算法~谢谢!!!
                  float fSpeed=0;
fSpeed=(float)dwBytes;  //dwBytes是目前已读取的字节数
                  fSpeed/=((float)time)/1000.0f;
fSpeed/=1024.0f;//这些bit代码用于根据所花时间计算下载速度和读取的数据量
tempsrting.Format("%.2fKB/s",fSpeed);
SetDlgItemText(IDC_Speed_Text,tempsrting);
end=timeGetTime();
time=end-start;
if(time==0)
         time=10;

解决方案 »

  1.   

    参考代码:VC下载文件 + 显示进度条
    原文地址:http://blog.csdn.net/wangningyu/archive/2009/09/19/4564818.aspx
    运行截图:
      

  2.   

    计算速度有个尺度的,一般是计算最近2秒或者几秒内的速度。
    举个例子:
    x秒前已下载的总数据长度为:size1
    当前下载的总数据长度为: size2
    那么speed = (size2 - size1)/x;
      

  3.   

    关键是要保证这个时间x比较短,几秒内才能反应实时速度而不是平均速度。
    因此size1会变化,当计算完当前速度后就赋值为当前下载数据:size1 = size2;
      

  4.   

    计算速度有个尺度的,一般是计算最近2秒或者几秒内的速度。
    举个例子:
    x秒前已下载的总数据长度为:size1
    当前下载的总数据长度为: size2
    那么speed = (size2 - size1)/x;
      

  5.   

    那fSpeed/=((float)time)/1000.0f;
    fSpeed/=1024.0f 
    中的 1000.0f 和 1024.0f 又是什么意思呢?
      

  6.   

    那fSpeed/=((float)time)/1000.0f;
    fSpeed/=1024.0f  
    中的 1000.0f 和 1024.0f 又是什么意思呢?