socket通訊流程

2021-07-03 11:48:42 字數 1485 閱讀 7393

原文: 對

tcp/ip

、udp

、socket

程式設計這些詞你不會很陌生吧?隨著網路技術的發展,這些詞充斥著我們的耳朵。那麼我想問:

1.         什麼是tcp/ip、udp?

2.         socket在**呢?

3.         socket是什麼呢?

4.         你會使用它們嗎?

什麼是tcp/ip、udp?

tcp/ip(transmission control protocol/internet protocol)即傳輸控制協議/網間協議,是乙個工業標準的協議集,它是為廣域網(wans)設計的。

udp(user data protocol,使用者資料報協議)是與tcp相對應的協議。它是屬於tcp/ip協議族中的一種。

這裡有一張圖,表明了這些協議的關係。

tcp/ip協議族包括運輸層、網路層、鏈路層。現在你知道tcp/ip與udp的關係了吧。

socket在**呢?

在圖1中,我們沒有看到socket的影子,那麼它到底在**呢?還是用圖來說話,一目了然。

原來socket在這裡。

socket是什麼呢?

socket是應用層與tcp/ip協議族通訊的中間軟體抽象層,它是一組介面。在設計模式中,socket其實就是乙個門面模式,它把複雜的tcp/ip協議族隱藏在socket介面後面,對使用者來說,一組簡單的介面就是全部,讓socket去組織資料,以符合指定的協議。

你會使用它們嗎?

前人已經給我們做了好多的事了,網路間的通訊也就簡單了許多,但畢竟還是有挺多工作要做的。以前聽到socket程式設計,覺得它是比較高深的程式設計知識,但是只要弄清socket程式設計的工作原理,神秘的面紗也就揭開了。

乙個生活中的場景。你要打**給乙個朋友,先撥號,朋友聽到**鈴聲後提起**,這時你和你的朋友就建立起了連線,就可以講話了。等交流結束,結束通話**結束此次交談。生活中的場景就解釋了這工作原理,也許tcp/ip協議族就是誕生於生活中,這也不一定。

先從伺服器端說起。伺服器端先初始化socket,然後與埠繫結(bind),對埠進行監聽(listen),呼叫accept阻塞,等待客戶端連線。在這時如果有個客戶端初始化乙個socket,然後連線伺服器(connect),如果連線成功,這時客戶端與伺服器端的連線就建立了。客戶端傳送資料請求,伺服器端接收請求並處理請求,然後把回應資料傳送給客戶端,客戶端讀取資料,最後關閉連線,一次互動結束。

socket通訊流程

socket是 開啟 讀 寫 關閉 模式的實現,以使用tcp協議通訊的socket為例,其互動流程大概是這樣子的 伺服器根據位址型別 ipv4,ipv6 socket型別 協議建立socket 伺服器為socket繫結ip位址和埠號 伺服器socket監聽埠號請求,隨時準備接收客戶端發來的連線,這時...

Socket通訊流程

鏈結 socket簡介 兩個程序能夠進行通訊的辦法是在網路中唯一的標識乙個程序。而在網路中唯一的標識乙個程序的方法是 標出ip位址 協議 埠號。這樣就可以利用socket進行通訊了。什麼是socket?socket翻譯為套接字,socket是在應用層和傳輸層之間的乙個抽象層,它把tcp ip層複雜的...

基本Socket通訊流程

1.初始化socket 用於監聽 1 初始化 socket s s socket 2 繫結 bind s,3 監聽 listen s,2.建立連線 1 檢查狀態 int ret select if ret 0 新連線 2 建立新連線 如果有客戶端請求連線 temp accept 注意,此時並不使用原...