上傳——斷點續傳之理論篇

一、流與緩存區
 
1.1  如何理解流?
 
        流是一種連接,一種管道,它建立了與物理文件或網絡相關聯的機制,方便讀寫文件或者網絡。當然還有其它類型的流。  
     
1.2  流的操作
 
      讀取:將數據從流傳輸到緩存區,緩衝區就是內存中的一塊區域,代碼中常用byte數組。
      寫入:將數據從數據源傳輸到流中。
      流用完後需要釋放資源,因爲文件或者網絡連接都屬於非託管資源,需要手動釋放。
 
二、客戶端和服務器的通信
 
       http通信,通過接口請求、響應。
 
三、何爲斷點續傳
 
     從哪跌倒,就從哪爬起,顧名思義,從上次斷開的位置接着傳輸。
 
四、爲什麼需要斷點續傳
 
     優點:針對大文件且網絡不太穩定的情況,斷點續傳能節省帶寬。
     缺點:增加額外的通信
 
五、如何進行斷點續傳
      斷點續傳的解決方案,如下圖所示:
     

 

上圖中,主要描述了客戶端和服務器通信的情況

客戶端:

     1、需要知道上次斷點位置

     2、計算當前開始傳輸的位置

     3、傳輸文件

如何傳輸文件,比如分片還是不分片,是多線程還是不用多線程,這些都需要設計與考慮。如果用了多線程,就會增加問題的複雜度。當然用好了,好處也很多。

服務端:

    創建文件的服務

    提供斷點位置的服務

    如果是分片傳輸,還要提供合併分片的服務

 

 

      
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章