2015-03-30 34 views
0

下載文件時,我知道已下載了多少數據,因此我可以顯示下載進度。如何在使用套接字時獲取上傳進度?

但是,上傳文件時,我並不知道另一端收到了多少數據,因此我無法顯示上傳進度,所以我在想唯一的方法就是知道如何已經上傳的大部分數據是通過讓接收方向我發送每次接收到一些數據時接收到多少數據。

這是正確的還是有另一種方式?

+3

只需跟蹤您發送的內容。如果絕對必要,請減少套接字發送緩衝區。但跟蹤你發送/排隊的內容可能已經夠用了。 – 2015-03-30 18:09:07

+0

@David Schwartz所以我應該假設有多少數據已經上傳到多少數據已發送到套接字發送緩衝區?但是,這隻會給我近似的結果,而不是100%的準確結果(儘管如果套接字發送緩衝區只有幾千字節,這不會成爲問題)。 – user4582812 2015-03-30 20:17:32

+0

@ user4582812:正確。對於上傳,你可以得到的只是一個近似值。出站數據在內核中排隊,並且只有在隊列滿時,您的代碼纔會在該隊列中阻塞。隊列在後臺傳輸。所以你只能報告你「發送」了多少數據的進度。要知道數據是否在另一端實際收到的唯一方法是如果對方之後向您發送確認。 – 2015-03-30 21:02:21

回答

0

在開始上傳之前,您可以獲取要上傳的數據量。之後,您可以計算每次請求發送多少數據。從這裏你可以顯示進度。

相關問題