2013-11-25 44 views
3

我有一個應用程序可以上傳和下載文件。我也可以將上傳/下載速度限制在所需的級別(CONFIGURABLE),這樣我的應用程序就不會佔用整個可用帶寬。我能夠使用libcurl(http)庫實現此目的。確定可用的上傳/下載帶寬

但我的問題是,如果我必須限制我的上傳速度來說可用上傳帶寬的75%,我該如何以編程方式找出我的可用上傳帶寬?最好用C/C++。如果它是預先配置的,我沒有問題,但是如果必須每次都學習和調整它(如我所說的),可用上傳限制的75%,我不知道是誰弄明白的。同樣適用於下載。任何指針都會有很大的幫助。

+0

https://github.com/sivel/speedtest-cli – Ashish

回答

3

無法確定常規網絡上兩點之間的絕對網絡容量。 原因是流量可以在兩者之間重新路由,其他數據流出現或消失或鏈路可能被切斷。

你可以做的是找出現在有什麼可用的帶寬。一種方法是儘可能快地上傳/下載一大塊數據(比如1MB)(無人工上限),然後測量需要多長時間。從那裏你可以找出現在有哪些帶寬可用,然後從那裏開始。

您可以再次定期測量帶寬,以確保您不會太離開。

+1

我的問題正是關於瞭解可用帶寬。我已經知道了我之前傳輸所花費的字節數(例如1Mb數據文件在20秒內以每秒52428字節的速率上傳)。但是現在你怎麼知道你有多大的訪問帶寬。我的問題來自於此鏈接[https://www.dropbox.com/help/26/en]和「特別是,Dropbox自動將自己限制到最高上傳速度的75%,以防止任何明顯的放緩在瀏覽。「 – Sandeep

+0

@sandeep,是的,你的觀察是正確的。採用這種方法,您將永遠無法使用更多可用的帶寬。我想,定期你應該啓動一些沒有帶寬限制的請求來重新計算可用的總帶寬值。 – Ashish

+0

U可以檢查速度測試命令行ulit來定期計算帶寬。(https://github.com/sivel/speedtest-cli) – Ashish