iOS開發之TCP UDP Socket簡單介紹

2021-07-10 16:11:10 字數 1923 閱讀 1144

1.

udpudp

是一種不可靠的網路協議。(

qq用的是這個協議)

udp是

user datagram protocol

的簡稱,

中文名是使用者資料報協議,是

osi參考模型中一種無連線的傳輸層協議,提供面向事務的簡單不可靠資訊傳送服務,

ietf rfc

768是

udp的正式規範。

udp協議基本上是

ip協議與上層協議的介面。

udp協議的全稱是使用者資料報協議,在網路中它與

tcp協議一樣用於處理資料報,是一種無連線的協議。在

osi模型中,在第四層

——傳輸層,處於

ip協議的上一層。

udp有不提供資料報分組、組裝和不能對資料報進行排序的缺點,也就是說,當報文傳送之後,是無法得知其是否安全完整到達的。

udp/

伺服器模式的網路應用都需要使用

udp協議。

udp協議從問世至今已經被使用了很多年,雖然其最初的光彩已經被一些類似協議所掩蓋,但是即使是在今天

udp仍然不失為一項非常實用和可行的網路傳輸層協議。與所熟知的

tcp(傳輸控制協議)協議一樣,

udp協議直接位於

ip(網際協議)協議的頂層。根據

osi(開放系統互連)參考模型,

udp和

tcp都屬於傳輸層協議。

udp協議的主要作用是將網路資料流量壓縮成資料報的形式。乙個典型的資料報就是乙個二進位制資料的傳輸單位。每乙個資料報的前

8個位元組用來包含報頭資訊,剩餘位元組則用來包含具體的傳輸資料。(詳見:

傳輸控制協議

tcp是一種面向連線(連線導向)的、可靠的、基於位元組流的運輸層(

transport layer

)通訊協議,由

ietf

的rfc

793說明(

specified

)。在簡化的計算機網路

osi模型中,它完成第四層傳輸層所指定的功能,

udp是同一層內另乙個重要的傳輸協議。

應用層向

tcp層傳送用於網間傳輸的、用

8位位元組表示的資料流,然後

tcp把資料流分割成適當長度的報文段(通常受該計算機連線的網路的資料鏈路層的最大傳送單元(

mtu)的限制)。之後

tcp把結果包傳給

ip層,由它來通過網路將包傳送給接收端實體的

tcp層。

tcp為了保證不發生丟包,就給每個位元組乙個序號,同時序號也保證了傳送到接收端實體的包的按序接收。然後接收端實體對已成功收到的位元組發回乙個相應的確認(

ack);如果傳送端實體在合理的往返時延(

rtt)內未收到確認,那麼對應的資料(假設丟失了)將會被重傳。

tcp用乙個校驗和函式來檢驗資料是否有錯誤;在傳送和接收時都要計算和校驗。

(詳見:

的英文原義是「孔

」或「插座

」客戶軟體將插頭插到不同編號的插座,就可以得到不同的服務。

常用的socket

型別有兩種:

流式socket

(sock_stream

)和資料報式

socket

(sock_dgram

)。流式是一種面向連線的

socket

,針對於面向連線的

tcp服務應用;

資料報式

socket

是一種無連線的

socket

,對應於無連線的

udp服務應用。(詳見:

)介紹兩篇文章

iOS開發之歸檔

歸檔是一種物件都可以實現的更加常規的序列化方式。適用對模型物件進行歸檔的技術可以輕鬆將複雜物件寫入檔案和從檔案中進行讀取。大多數支援儲存資料的foundation和cocos touch類都遵循nscoding協議 不過有些例外,例如uiiamge 因此對於大多數系統提供的類而言,歸檔比較輕鬆。如果...

iOS 開發之封裝

繼承,封裝,多型是物件導向程式設計的三大基石 在ui 中,封裝可以降低 的冗餘度,節省 量,避免了重複 在這裡簡單的封裝了乙個label和乙個textfield,組成了乙個登陸介面的樣式 新建了乙個檢視,這是檢視的.h檔案,這個檢視的一些方法 這個是.m檔案中 對label和textfield進行布...

IOS開發之 入門

目前主要的移動開發平台有 android ios windowsphone,前兩者佔據著絕大多數的終端應用,我們常說的移動開發就是指 android和ios開發。本位主要講述ios的開發。開發ios應用,需要專門的硬體裝置 開發工具 特定語言的支援,下面將逐一介紹這些知識點 硬體mac筆記本或一體機...