网络上大量数据传输(比如ftp)的速度控制问题!

yzx110 2004-05-11 07:06:07
比如ftp服务器,它可以控制一个用户的速度,也可以控制整个服务器的传输速度,这个怎么实现呢?

我现在是这样想的:

对于每个连接设一个计时器(一秒触发一次)、一个传输线程(控制数据的传输),当计时器时间到达时(也就是计时器触发)就检查这一秒内传输的数据量,如果超过预定的速度值,则让传输线程挂起一段时间,否则继续执行。这样就为控制连接的传输速度提供了基础。

要是想控制整个服务器的传输速度,则这样实现:把当前所有的传输连接归并到一个列表,每当发生一次变化(这个变化可以以情况而定,比如新增加了或者减少了一个传输连接等),先获得当前服务器的最大速度值,然后把它平均分到每个传输连接上,这样的话每个传输线程就以分配到的速度值作为最大速度控制传输。


我这样的方案是否可行,还请大家指点.

如果谁有更好的成熟的方案的话,可以提出来学习学习。
...全文
179 10 打赏 收藏 举报
写回复
10 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
yzx110 2004-05-13
hxq7522(hxq) 怎么么回音了呢?能不能给谢资料或者例子啊
  • 打赏
  • 举报
回复
廖雪峰 2004-05-12
java中怎么用?只能用jni
  • 打赏
  • 举报
回复
yzx110 2004-05-12
对啊,Qos怎么用?如果别人禁用了Qos是不是就不行了呢?
  • 打赏
  • 举报
回复
laggar 2004-05-12
QOS怎么用?
  • 打赏
  • 举报
回复
hxq7522 2004-05-12
使用QOS也可以
  • 打赏
  • 举报
回复
daou101 2004-05-12
无需如此,使用Qos协议即可
  • 打赏
  • 举报
回复
廖雪峰 2004-05-12
我自己写的ftp服务器控制下载速度就是这么实现的
  • 打赏
  • 举报
回复
yzx110 2004-05-12
当然是在.net里。谁有没有这方面的资料,或者列子呢
  • 打赏
  • 举报
回复
yzx110 2004-05-11
楼上的真的吗,你们实际项目中是否用这种放案呢?
  • 打赏
  • 举报
回复
廖雪峰 2004-05-11
完全可行,如果要更平稳一点,可以用1/2或1/4秒触发
  • 打赏
  • 举报
回复
相关推荐
发帖
C#
加入

10.7w+

社区成员

.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
申请成为版主
帖子事件
创建了帖子
2004-05-11 07:06
社区公告

让您成为最强悍的C#开发者