Linux 網路程式設計基礎

2021-10-03 18:36:51 字數 890 閱讀 1875

實際上就是socket套接字程式設計。socket是一套網路程式設計介面,類似於中間商一樣,上層使用者可以通過這些介面簡單完成網路通訊傳輸,不關心內部實現。

由於傳輸層有兩個主要的協議:tcp/udp,這兩個協議各不相同,因此實現流程也不同,所以socket程式設計就分為兩種。 協議

協議特性

應用場景

udp無連線,不可靠,面向資料報

資料實時性大於安全性

tcp面向連線,可靠傳輸,面向位元組流

資料安全性大於實時性

tcp/udp講解

socket不能決定使用者使用哪種協議,只是提供一些介面,讓使用者填充關鍵資訊。

網路通訊實際上就是兩端主機上程序之間的通訊:(客戶端、伺服器端)

客戶端:主動發出請求的一方主機。

伺服器端:被動接受請求的一方主機。

永遠都是客戶端先發出請求

當客戶端想和伺服器端建立傳輸,就需要伺服器端在客戶端傳輸之前,等待客戶端的傳輸。

伺服器端流程

建立套接字:在核心中建立套接字結構體,向程序返回乙個操作控制代碼,通過這個核心中的socket結構體和網絡卡建立聯絡。

傳送資料:把資料放到核心socket結構體核心緩衝區中,作業系統在合適的時間,會從傳送緩衝區中取出資料,將資料層層封裝,最終通過網絡卡發出去。

關閉套接字,釋放資源。

客戶端流程

建立套接字。

為套接字繫結位址資訊。

傳送資料。

接收資料。

關閉套接字,釋放資源。

客戶端永遠都是主動傳送的一方,因此客戶端必須知道服務端的位址資訊才能傳送資料,傳送資料之間先要對資料進行層層封裝。

#include

linux網路程式設計基礎 網路基礎

客戶機 client 伺服器 server 模式。需要在通訊兩端各自部署客戶機和伺服器來完成資料通訊。瀏覽器 browser 伺服器 server 模式。只需在一端部署伺服器,而另外一端使用每台pc都預設配置的瀏覽器即可完成資料的傳輸。c s模式 優點缺點 資料快取本地,效率高 工作量大,開發周期更...

Linux網路程式設計基礎

伺服器端 server.c include include include include include define max line 100 process fuction,turn upper word to lower void my fun char p int main void st...

linux網路程式設計基礎

ifndef errwrap h define errwrap h void perr exit const char s void err exit const char s int accept int fd,struct sockaddr sa,socklen t salenptr void ...