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

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

我现在是这样想的:

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

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


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

如果谁有更好的成熟的方案的话,可以提出来学习学习。
...全文
224 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
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秒触发

111,094

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

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

试试用AI创作助手写篇文章吧