我编写了一个应用程序,可以将本地文件夹与在线文件夹同步,但它占用了所有的带宽。请问如何在程序中限制应用程序使用的带宽?
我会说“不要这样做”。除非您在做一些真正不正确的事情,否则您的程序不应该占用带宽。您的路由器应该在所有请求之间平衡可用带宽。
我建议您执行以下操作:
a)为所有文件创建md5哈希值。比较哈希和/或日期和大小以查找已更改的文件并仅同步这些文件。除非您正在同步大型文件,否则您不必同步大量数据。
b)限制发送速率。在上传线程中,按1-8KB的块读取文件,然后在每个块后调用Thread.Sleep以限制速率。但是,您必须在上传方面执行此操作。
c)通过Gzip流传输所有内容(System.IO.Compression)。对于文本文件,这可以减少需要传输的数据大小。
希望这能有所帮助!