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

上圖中,主要描述了客戶端和服務器通信的情況
客戶端:
1、需要知道上次斷點位置
2、計算當前開始傳輸的位置
3、傳輸文件
如何傳輸文件,比如分片還是不分片,是多線程還是不用多線程,這些都需要設計與考慮。如果用了多線程,就會增加問題的復雜度。當然用好了,好處也很多。
服務端:
創建文件的服務
提供斷點位置的服務
如果是分片傳輸,還要提供合並分片的服務