一、流與快取區
1.1 如何理解流?
流是一種連線,一種管道,它建立了與物理檔案或網路相關聯的機制,方便讀寫檔案或者網路。當然還有其它型別的流。
1.2 流的操作
讀取:將資料從流傳輸到快取區,緩衝區就是記憶體中的一塊區域,程式碼中常用byte陣列。
寫入:將資料從資料來源傳輸到流中。
流用完後需要釋放資源,因為檔案或者網路連線都屬於非託管資源,需要手動釋放。
二、客戶端和伺服器的通訊
http通訊,通過介面請求、響應。
三、何為斷點續傳
從哪跌倒,就從哪爬起,顧名思義,從上次斷開的位置接著傳輸。
四、為什麼需要斷點續傳
優點:針對大檔案且網路不太穩定的情況,斷點續傳能節省頻寬。
缺點:增加額外的通訊
五、如何進行斷點續傳
斷點續傳的解決方案,如下圖所示:
上圖中,主要描述了客戶端和伺服器通訊的情況
客戶端:
1、需要知道上次斷點位置
2、計算當前開始傳輸的位置
3、傳輸檔案
如何傳輸檔案,比如分片還是不分片,是多執行緒還是不用多執行緒,這些都需要設計與考慮。如果用了多執行緒,就會增加問題的複雜度。當然用好了,好處也很多。
服務端:
建立檔案的服務
提供斷點位置的服務
如果是分片傳輸,還要提供合併分片的服務