socket通訊過程

2021-10-20 15:04:23 字數 2137 閱讀 8307

一、網路位元組序與主機位元組序

1、主機位元組序:

就是自己的主機內部,記憶體中資料的儲存順序,可以分為兩種:

2、網路位元組序

大端位元組序即網路位元組序

3、資料傳輸過程

a的固有資料儲存-------標準化--------轉化成b的固有格式

iia的主機位元組序----------網路位元組序 ---------b的主機位元組序

標準化原因:不同的cpu有不同的位元組序型別

二、socket通訊 ---unix版

1、socket通訊流程

socket是"開啟—讀/寫—關閉"模式的實現,以使用tcp協議通訊的socket為例,其互動流程大概如下:

伺服器根據位址型別(ipv4,ipv6)、socket型別、協議建立socket

伺服器為socket繫結ip位址和埠號

伺服器socket監聽埠號請求,隨時準備接收客戶端發來的連線,這時候伺服器的socket並沒有被開啟

客戶端建立socket

客戶端開啟socket,根據伺服器ip位址和埠號試圖連線伺服器socket

伺服器socket接收到客戶端socket請求,被動開啟,開始接收客戶端請求,直到客戶端返回連線資訊。這時候socket進入阻塞狀態,所謂阻塞即accept()方法一直到客戶端返回連線資訊後才返回,開始接收下乙個客戶端諒解請求

客戶端連線成功,向伺服器傳送連線狀態資訊

伺服器accept方法返回,連線成功

客戶端向socket寫入資訊

伺服器讀取資訊

客戶端關閉

伺服器端關閉

2、三次握手建立連線

圖示過程如下:

3、四次揮手斷開連線

圖示過程如下:

接收到這個fin的源傳送端tcp對它進行確認。

這樣每個方向上都有乙個fin和ack。

4、socket通訊主要函式資訊

《---socket()、bind()、listen()、connect()、accept()、read()、write()、close()---》

socket函式 -- int socket(int domain, int type, int protocol)

引數解釋:

可設定值:

名稱 含義 

名稱 含義

pf_unix,pf_local 

本地通訊 

pf_x25 

itu-t x25 / iso-8208協議

af_inet,pf_inet 

ipv4 internet協議 

pf_ax25 

amateur radio ax.25

pf_inet6 

ipv6 internet協議 

pf_atmpvc 

原始atm pvc訪問

pf_ipx 

ipx-novell協議 

pf_netlink 

核心使用者介面裝置 

pf_packet 

底層包訪問

可設定值:

名稱 含義

sock_stream 

tcp連線,提供序列化的、可靠的、雙向連線的位元組流。支援帶外資料傳輸

sock_dgram 

支援udp連線(無連線狀態的訊息)

sock_seqpacket 

序列化包,提供乙個序列化的、可靠的、雙向的基本連線的資料傳輸通道,資料長度定常。每次呼叫讀系統呼叫時資料需要將全部資料讀出

sock_raw 

raw型別,提供原始網路協議訪問

sock_rdm 

提供可靠的資料報文,不過可能資料會有亂序

sock_packet 

這是乙個專用型別,不能呢過在通用程式中使用

注:並不是所有的協議族都實現了這些協議型別,例如,af_inet協議族就沒有實現sock_seqpacket協議型別。

Socket通訊過程

伺服器端 accept 以同步方式從偵聽套接字的連線請求佇列中提取第乙個掛起的連線請求,然後建立並返回新的socket。不能使用返回的這個 socket 接受連線佇列中的任何附加連線。然而,可以呼叫返回的 socket 的remoteendpoint 方法來標識遠端主機的網路位址和埠號。在阻止模式中...

通訊過程Socket程式設計

c s模式 瀏覽器 browser 伺服器 server 模式。只需在一端部署伺服器,而另外一端使用每台pc都預設配置的瀏覽器即可完成資料的傳輸。優缺點 簡單的c s模型通訊 server端 listen函式 func listen network,address string listener,e...

socket 的通訊過程

1.建立套接字 linux在利用socket 系統呼叫建立新的套接字時,需要傳遞套接字的位址族識別符號 套接字型別以及協議,其函式定義於net socket.c中 asmlinkage long sys socket int family,int type,int protocol 實際上,套接字對...