Socket連線的流程

2021-09-12 12:48:46 字數 897 閱讀 7622

套接字是支援tcp/ip協議網路通訊的基本操作單元,可以將套接字看作不同主機間的程序雙向通訊的端點,它構成了單個主機內及整個網路間的程式設計介面。套接字存在於通訊域中,通訊域是為了處理

一般的執行緒通過套接字通訊而引進的一種抽象概念。套接字通常會和同乙個域中的套接字交換資料(資料交換也可能會穿越域的界限,但這時一定要執行某種解釋程式)。各種程序使用這個相同的域用

internet協議來進行相互之間的通訊。

下圖展示的是一套基本的socket通訊流程

socket通訊的基本流程具體步驟如下所示。

1)開啟乙個連線之前,需要先完成socket和bind兩個步驟。socket是新建乙個套接字,bind指定套接字的ip和埠(客戶端在呼叫connect時會由系統分配埠,因此可以省去bind)。

2)服務端通過listen開啟監聽,等待客戶端接入。

3)客戶端通過connect連線伺服器,服務端通過accept接收客戶端連線。在connect-accept過程中,作業系統將會進行三次握手。

4)客戶端和服務端通過write和read傳送和接收資料,作業系統將會完成tcp資料的確認、重發等步驟。

5)通過close關閉連線,作業系統會進行四次揮手。

system.net.sockets命名空間的socket類為網路通訊提供了一套豐富的方法和屬性,表6-6和表6-7列舉了socket類的一些常用方法和屬性。

Linux 面向連線的socket通訊流程

說明 網路上的ip都是數字加點 192.168 0.1 構成 struct in addr結構使用32位的ip,如 ip c0a80001 是192.168 0.1 函式原型 int inet aton const char cp,struct in addr inp 將a.b.c.d的ip轉換為3...

Socket程式設計的流程

socket呼叫的資料型別及其切換函式 htons htols i addr sockaddr in socket呼叫所需函式 wsastartup wsaclearup socket closesocket bind listen accept connect send sendto recv r...

socket流程原理

網路由下往上分為 物理層 資料鏈路層 網路層 傳輸層 會話層 表示層和應用層。通過初步的了解,我知道ip協議對應於網路層,tcp協議對應於傳輸層,而http協議對應於應用層,三者從本質上來說沒有可比性,socket則是對tcp ip協議的封裝和應用 程式設計師層面上 也可以說,tpc ip協議是傳輸...