如题

解决方案 »

  1.   

    ,可以计算网络下载总的速度,然后Sleep等来控制...
      

  2.   

    同意1楼,以前在别的贴子也见过sleep的说法
    蹭分~
      

  3.   

    这个真正是如何做的,只有迅雷知道。sleep只是一种方法
      

  4.   

    应该不是Sleep一下那么简单~
      

  5.   

    对于QOS,兼容性比较差,有一些服务必须是启动了才能使用QOS功能,如果用户是非管理员,那么想启动那些服务是不可能的,而且没记错的话,win 9x系列是不支持QOS的.如果说迅雷等可win 9x系统,那么使用QOS的可能性不高.Sleep()等只是适用于阻塞socket模型,对于非阻塞socket模型,并不适用.总的来说,网络下载限速,无论是阻塞还是非阻塞,最终都是使用简单的数学方法,如果下载速度高于限制速度,就限制在某段时间内不做下载,直至下载速度低于或等于限制的速度时再继续下载.
      

  6.   

    肯定不是用QoS的,因为QoS的限制太多了,肯定不是所有的下载资源都支持QoS的我很久以前参与开发过一个下载软件,在软件里面我们是这么实现的,就是给代码加个流量统计,每秒计算一次,如果流量byte数超过速度限定值,就 sleep() 一下,不去调用send()、recv()就行,多个线程的时候就需要计算所有线程的总和,而且这个sleep()的时间,是要根据前面计算的速率来决定的,这里也没什么高深的技术,就是把sleep的时间控制好,就能基本实现客户端下载的速度限制。