我正在开发一个程序,在后台不断发送数据流,我希望允许用户为上传和下载限制设置上限.
我已经阅读了令牌桶和漏桶的算法,看起来后者似乎符合描述,因为这不是最大化网络带宽而是尽可能不引人注目的问题.
然而,我对如何实现这一点有点不确定.一种自然的方法是扩展抽象Stream类,使扩展现有流量变得简单,但是这不需要额外线程的参与来发送数据,同时接收(漏桶)吗?任何有关其他实现的提示都将受到赞赏.
此外,虽然我可以修改程序接收的数据量,但带宽限制在C#级别的工作情况如何?计算机是否仍会接收数据并将其保存,有效取消限制效果还是等到我要求接收更多数据?
编辑:我感兴趣的是限制传入和传出数据,我无法控制流的另一端.