- TCP:安全的協(xié)議,能保證數(shù)據(jù)順序和正確性,服務(wù)器和客戶端能隨時互發(fā)數(shù)據(jù)。如果服務(wù)器要主動發(fā)送數(shù)據(jù)給客戶端,可以用這個協(xié)議
- UDP:非安全的協(xié)議,容易丟失數(shù)據(jù),一般用于練級堆棧的游戲
- XMPP:給予XML通訊的協(xié)議,基于TCP發(fā)送XML數(shù)據(jù),一般用于即時通訊(比如QQ、微信)
- HTTP:一般用于非實時鏈接的請求,只有客戶端主動向服務(wù)器發(fā)送請求時,服務(wù)器才能返回數(shù)據(jù)給客戶端
- SOCKET:套接口,可以使用TCP/DUP/XMPP通訊
數(shù)據(jù)請求編碼: - 200表示一個正確的請求,206表示請求只加載了一部分,404表示網(wǎng)絡(luò)請求的頁面不存在;503表示服務(wù)器超時,400請求出錯。
- 端點續(xù)傳:客戶端軟件端點續(xù)傳的值在下載或者上傳時,將下載或者上傳的文件人為的劃分為幾個部分,每個部分一個線程進行上傳或者下載的,如果網(wǎng)絡(luò)異常,可以從上傳或者下載的部分重新上傳或者下載未下載的部分,提高速度,節(jié)省時間。
創(chuàng)建串行隊列加入異步任務(wù)
- 生成文件名,用文件名和存放路徑生成文件路徑
- 發(fā)送網(wǎng)絡(luò)請求獲取待生成文件大小
- 設(shè)定每次下載的字節(jié)數(shù),循環(huán)下載(循環(huán)判斷是剩余字節(jié)是否大于循環(huán)下載字節(jié))
- 發(fā)送請求時設(shè)定http頭的range范圍,根據(jù)每次循環(huán)fromB和toB來設(shè)定
- 每次下載成功返回的數(shù)據(jù)寫入到之前設(shè)定好的文件中
Socket鏈接與HTTP鏈接
由于通常情況下socket鏈接就是TCP鏈接,因此Socket鏈接一旦建立,通信雙方即可開始相互發(fā)送數(shù)據(jù)內(nèi)容,知道雙方鏈接斷開。但在實際網(wǎng)絡(luò)應(yīng)用中,客戶端到服務(wù)器之間的通信往往需要穿越多個中間節(jié)點,例如路由器、網(wǎng)關(guān)、防火墻等,大部分防火墻默認會關(guān)閉長時間處于非活躍狀態(tài),而HTTP鏈接使用的是”請求-響應(yīng)“的方式,不僅在請求時需要先建立鏈接,而且需要客戶端向服務(wù)器發(fā)出請求后,服務(wù)器端菜能恢復(fù)數(shù)據(jù)。很多情況下,需要服務(wù)器端主動向客戶端推送數(shù)據(jù),保持客戶端與服務(wù)器數(shù)據(jù)的實時與同步。此時若雙方建立的是Socket鏈接,服務(wù)器就可以直接將數(shù)據(jù)傳送給客戶端,若雙方建立的是HTTP鏈接,則服務(wù)器需要等到客戶端發(fā)送一次請求后才能將數(shù)據(jù)傳回給客戶端,因此,客戶端定時向服務(wù)器發(fā)送鏈接請求,不僅可以保持在線,同時也是在詢問服務(wù)器是否有新的 數(shù)據(jù),如果有就將數(shù)據(jù)傳給客戶端
HTTP給予socket做出來的,所有的網(wǎng)絡(luò)功能都是基于socket做出來的。
文件存儲

偏好設(shè)置存儲
