讀書筆記 iOS 深入解剖對等網路

2022-05-22 22:51:13 字數 892 閱讀 4433

協議本身是乙個執行在udp之上的定製協議。我所以決定使用乙個定製協議很簡單。首先,當前這個任務看起來足夠簡單,因此與嘗試改進乙個現在協議相比,直接構建乙個定製協議更為容易。其次,定製協議可以將開銷減少至最小並盡可能地提高效能。最後,這本身就是乙個很好的教學練習。

udp會暴露很多不確定性。它使用乙個校驗和來確保不會傳遞被攻破的資料,但它並不會做任何嘗試來掩蓋出現問題。如果乙個路由器決定丟掉乙個資料報,那麼這個資料永遠不會被接收。如果乙個較早的資料報被延遲,以至於較晚到達,資料的妝收就會亂序。因此,要由各個應用採取措施對這些問題做出補償。

座標就是32位有符號整數。這有些大材小用,因為iphone螢幕只有320*480,不過這樣可以為將來留出餘地。至於顏色,沒有必要使用大於單位元組的型別來表示各個顏色分量。這樣一來,每個分量的取值範圍就是0~255,這已經是大多數螢幕所能再現的最大顏色解析度。

c編譯器總是會犧牲空間來換取速度,如果計算機處理的資料是對齊的,處理速度則最快,所謂對齊是指資料所在的記憶體位址恰好是其大小的倍數。int32_t型別是4位元組,所以編譯器會嘗試使其位址是4的倍數。

前一種體系稱為大端位元組序,後一種稱為小端位元組序。目前,mac中使用的intel x86 cpu採用小端位元組序,iphone中使用的arm cpu也是如此。較早的mac中使用的powerpc處理器採用大端位元組序,一般的,通常會看到不同平中上分別使用不同的位元組序。如果使用不正確 位元組序讀取資料,會得出混亂而且毫無意義的數字,所以,明確位元組序非常重要。

實際上,至少還存在另外一種位元組序:中間端位元組序!在一些較早的,少見的體系結構中,並沒有使用前向也沒有使用向後順序,而是採用了一種奇怪的混合順序,對於事例整數305 419 896,會寫為{0x34,0x12,0x78,0x56}.正是由於在這樣一些較老的系統上儲存字串」unix「時會表示為」nuxi「,所以區別位元組序的問題有時稱為」nuxi問題"。

iOS 讀書筆記 網路請求

知道 3次握手 嗎?突然想起這個詞 什麼是3次握手?tcp三次握手 四次揮手詳解 這裡是3次握手的詳細解釋 3次握手就是為了可靠的傳送資料,tcp 什麼是tcp呢?tcp就是一種可靠傳輸的協議 在傳送資料之前,兩台主機之間進行3次握手。3次握手完成後才傳送資料。預備知識 位碼即tcp標誌位,有6種標...

iOS 讀書筆記 網路請求

知道 3次握手 嗎?突然想起這個詞 什麼是3次握手?tcp三次握手 四次揮手詳解 這裡是3次握手的詳解 3次握手就是為了可靠的傳送資料,tcp 什麼是tcp呢?tcp就是一種可靠傳輸的協議 在傳送資料之前。兩台主機之間進行3次握手。3次握手完畢後才傳送資料。預備知識 位碼即tcp標誌位,有6種標示 ...

讀書筆記 iOS 訪問網路

ios平台是按照一直有網路連線的思路來設計的,開發者利用這一特點創造了很多優秀的第三方應用。大多數的ios應用都需要聯網,甚至有些應用嚴重依賴網路,沒有網路就無法正常工作。在訪問網路失敗的時候 應用沒有做出適當的提示 是蘋果的ios審核團隊拒絕乙個應用的常見理由。蘋果要求你必須先檢測網路連線狀態,當...