#簡述
在我們使用客戶端的時候,客戶端是如何通訊的呢?
下面就簡單的說說看
#通訊流程
下面是流程圖
通訊的基礎是tcp/ip模型
#伺服器搭建
##伺服器搭建流程
##網路通訊的基礎知識
tcp/ip 四層協議
tcp報文段首部格式
此部分是傳輸層資料封裝,封裝後給網路層,ip資料報
序號:seq序號,佔32位,用來標識從tcp源端向目的端傳送的位元組流,發起方傳送資料時對此進行標記。
確認序號:ack序號,佔32位,只有ack標誌位為1時,確認序號欄位才有效ack=seq+1。
標誌位:共6個,即urg、ack、psh、rst、syn、fin等,具體含義如下:
(a)urg:緊急指標(urgent pointer)有效。
(b)ack:確認序號有效。
(c)psh:接收方應該盡快將這個報文交給應用層。
(d)rst:重置連線。
(e)syn:發起乙個新連線。
(f)fin:釋放乙個連線。
需要注意的是:
不要將確認序號ack與標誌位中的ack搞混了。
確認方ack=發起方req+1,兩端配對。
資料報
網路介面層
這一塊主要主要涉及到一些物理傳輸,比如乙太網,無線區域網.這裡就不做詳細的介紹了
網路層/ip資料報
tcp/ip協議定義了乙個在區域網上傳輸的包,稱為ip資料報(ip datagram)。
ip資料報由兩部分組成
tcp資料報與ip資料報的關係
應用層
應用層做為 tcp/ip 協議的最高層級,對於我們移動開發來說,是接觸最多的。
同樣的,由於應用層我們需要涉及的東西太多,具體的介紹我們將在之後的文章中進行
tcp服務端
所謂三次握手(three-way handshake)即建立tcp連線,就是指建立乙個tcp連線時,需要客戶端和服務端總共傳送3個包以確認連線的建立。
在socket程式設計中,這一過程由客戶端執行connect來觸發
tcp/ip資料封裝包
協議加工過程
比如資料hello ,進行封包
從零開發B S機架應用程式(四) TCP
傳輸控制協議。與udp不同,他是面向連線和資料流的可靠傳輸協議。也就是,他能夠使一台計算機上的資料無差錯的發往網路的其他計算機,所以當藥傳輸大量資料時,我們選用tcp協議。qtcpserver的基本操作 1 呼叫listen監聽埠。2 連線訊號newconnection,在槽函式裡呼叫nextpen...
從零開發B S機架應用程式(七)巨集定義的使用
看下面的一段 enum audiomasteropcodes 在 或c 語言源程式中允許用乙個識別符號來表示乙個字串,稱為 巨集 被定義為 巨集 的識別符號稱為 巨集名 在編譯預處理時,對程式中所有出現的 巨集名 都用巨集定義中的字串去代換,這稱為 巨集代換 或 巨集展開 巨集定義是由源程式中的巨集...
從應用程式的角度看Binder (十)
從應用程式的角度看binder一共有三個方面 1.本地功能 bn 部分做的 2.部分 bp 做的 3.客戶端做的 在程式的實現過程中bnabc和bpabc是雙繼承了介面abc。一般來說bpabc是乙個實現類,這個實現類不需要在介面中體現,它實際上負責的只是通訊功能,不執行具體的功能 bnabc則是乙...