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

2021-08-28 11:27:54 字數 1357 閱讀 7820

客戶機(client)/伺服器(server)模式。需要在通訊兩端各自部署客戶機和伺服器來完成資料通訊。

瀏覽器(browser)/伺服器(server)模式。只需在一端部署伺服器,而另外一端使用每台pc都預設配置的瀏覽器即可完成資料的傳輸。

c/s模式

優點缺點

資料快取本地,效率高

工作量大,開發周期更長

可以採用自定義協議(開發靈活)

客戶端安裝本地,有安全隱患

b/s模式

優點缺點

標準瀏覽器做客戶端,開發工作量小

使用第三方瀏覽器,因此網路應用支援受限

採用瀏覽器顯示資料,因此移植性非常好,不受平台限制

快取資料不盡如人意,從而傳輸資料量受到限制

採用標準http協議進行通訊,協議選擇不靈活

硬體型別:指鏈路層網路型別,1為乙太網。

協議型別:0x0800為ip協議。

op欄位為:1表示arp請求,2表示arp應答。

16位udp長度(頭部+資料)

局域內的私網ip 訪問公網:區域網連線的公網路由器中有net對映表,將區域網內的ip+埠(8080)對映成公網的ip+埠(10000)

(1)路由器保護機制:對於陌生的ip第一次傳送的資料報會遮蔽

(2)需要公網ip去打洞,使得兩個客戶端之間直接傳送,不需要經過伺服器

(1)ip+port:網路環境唯一標識程序

(2)socket成對出現

(3)乙個檔案描述符指向兩個緩衝區:讀和寫

因此可以用socket來描述網路連線的一對一關係。套接字通訊原理如下圖所示:

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 ...

Linux 網路程式設計基礎

實際上就是socket套接字程式設計。socket是一套網路程式設計介面,類似於中間商一樣,上層使用者可以通過這些介面簡單完成網路通訊傳輸,不關心內部實現。由於傳輸層有兩個主要的協議 tcp udp,這兩個協議各不相同,因此實現流程也不同,所以socket程式設計就分為兩種。協議 協議特性 應用場景...