如何编程控制客户端下载占用带宽(200分)

  • 主题发起人 主题发起人 tangrh
  • 开始时间 开始时间
T

tangrh

Unregistered / Unconfirmed
GUEST, unregistred user!
为了让服务端为更多的客户端服务,需要控制某些客户端的下载速度,以免得它们占掉服务端大量带宽,影响其他客户端的连接和下载,不知道如何处理
 
高手有什么控制带宽的好办法?
 
需要server软件的支持,比如serv-u ftp就可以支持限制client的下载速度
 
提供一下思路
如果用阻塞模式的indy9.0,它有一个IdThrottle组件,可以非常方便地加以控制!
如果纯粹自己写限流代码,那么可以这样客户端上一次传输和这次传输的时间间隔记录下来,传输量也记录下来,两者相除,发现流量超标,sleep()一下,sleep的时间可以计算出来;
非阻塞模式下,由于“消息的弹出”不可抑制,客户端要读的消息(即,服务端写Socket的过程)必须即刻处理,而且处理消息是个队列,前面一个延迟,那么后面的统统受到影响。难啊!我这么处理:来一个请求,产生一个线程,在线程里按以上方法处理...
 
后退
顶部