限制带宽速度

时间:2010-06-17 14:09:38

标签: c# bandwidth

我写了一个应用程序,将本地文件夹与在线文件夹同步,但它占用了我所有的带宽,我如何限制应用程序使用的带宽量? (编程)?

3 个答案:

答案 0 :(得分:2)

查看http://www.codeproject.com/KB/IP/MyDownloader.aspx

他正在使用众所周知的技术,可以在Downloader.Extension \ SpeedLimit中找到

基本上,在读取更多数据流之前,将检查自上一次迭代以来实际读取了多少数据。如果该速率超过最大速率,则读取命令暂停很短的时间并重复检查。大多数应用程序都使用这种技术。

答案 1 :(得分:0)

试试这个:http://www.netlimiter.com/很久以来我一直在“查看这个”列表(尽管我自己还没有尝试过)。

答案 2 :(得分:0)

我会说“不要”。除非你做错了什么,否则你的程序不应该占用带宽。您的路由器应该平衡所有请求之间的可用带宽。

我建议您执行以下操作:

a)为所有文件创建md5哈希值。比较文件的哈希值和/或日期和大小,仅同步已更改的文件。除非您正在同步大量文件,否则您不必同步大量数据。

b)限制发送速率。在您的上传线程中,以1-8KB块的形式读取文件,然后在每个块之后调用Thread.Sleep来限制速率。但是,您必须在上传方面执行此操作。

c)通过Gzip流管道所有内容。 (System.IO.Compression)对于文本文件,这可以减少需要传输的数据的大小。

希望这有帮助!