限制带宽速度

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

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

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

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

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

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

我建议你做以下事情:

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

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

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

希望这可以帮助!