《Unix Linux系統程式設計》第十三章學習筆記

2022-09-10 03:12:11 字數 1734 閱讀 6877

本章論述了tcp/ip 和網路程式設計,分為兩個部分。第一部分論述了tcp/ip協議及其應用,具體包括 tcp/ip 棧、ip位址、主機名、dns、ip資料報和路由器;介紹了tcp/ip 網路中的udp和 tcp 協議、埠號和資料流;闡述了伺服器-客戶機計算模型和套接字程式設計介面;通過使用udp和tcp套接字的示例演示了網路程式設計。第乙個程式設計專案可實現一對通過網際網路執行檔案操作的 tcp伺服器-客戶機,可讓使用者定義其他通訊協議來可靠地傳輸檔案內容。

本章的第二部分介紹了web和cgi程式設計,解釋了http程式設計模型、web 頁面和 web瀏覽器;展示了如何配置 linux httpd伺服器來支援使用者 web 頁面、php和cgi程式設計;闡釋了客戶機和伺服器端動態 web 頁面;演示了如何使用php和 cgi建立伺服器端動態web 頁面。

ip位址分為兩部分,即 networkid 欄位和hostid欄位。根據劃分,ip 位址分為a~e 類。例如,乙個b類ip位址被劃分為乙個16位networkid,其中前2位是10,然後是乙個16位的 hostid欄位。發往ip位址的資料報首先被傳送到具有相同 networkid的路由器。路由器將通過 hostid 將資料報**到網路中的特定主機。每個主機都有乙個本地主機名localhost,預設 ip位址為 127.0.0.1。本地主機的鏈路層是乙個回送虛擬裝置,它將每個資料報路由回同乙個localhost。這個特性可以讓我們在同一臺計算機上執行tcp/ip 應用程式,而不需要實際連線到網際網路。

ip協議用於在 ip主機之間傳送/接收資料報。ip盡最大努力執行。ip 主機只向接收主機傳送資料報,但它不能保證資料報會被傳送到它們的目的地,也不能保證按順序傳送。這意味著ip 並非可靠的協議。必要時,必須在ip 層的上面實現可靠性。

udp(使用者資料報協議)(rfc768 1980;comer 1988)在ip上執行,用於傳送/接收資料報。與ip類似,udp不能保證可靠性,但是快速高效。它可用於可靠性不重要的情況。

tcp(傳輸控制協議)是一種面向連線的協議,用於傳送/接收資料流。tcp也可在ip 上執行,但它保證了可靠的資料傳輸。通常,udp類似於傳送郵件的usps,而tcp類似於**連線。

應用程式 =(主機 ip,協議,埠號)

其中,協議是tcp或 udp,埠號是分配給應用程式的唯一無符號短整數。要想使用udp或 tcp,應用程式(程序)必須先選擇或獲取乙個埠號。前1024個埠號已被預留。其他埠號可供一般使用。應用程式可以選擇乙個可用埠號,也可以讓作業系統核心分配埠號。

(1)套接字位址

struct sockaddr_in 

if (listen(server_socket, 5) == -1)

printf("建立tcp伺服器成功\n");

fd_set reads,copy_reads;

int fd_max,fd_num;

struct timeval timeout;

fd_zero(&reads);//初始化清空socket集合

fd_set(server_socket,&reads);

fd_max=server_socket;

while (1)

if (fd_num==0)

for(int i=0;i

}else else }}

}}return 0;

}

《Unix Linux系統程式設計》第十二章學習筆記

本章討論了塊裝置 i o 和緩衝區管理 解釋了塊裝置 i o 的原理和 i o 緩衝的優點 論述了 unix 的緩衝區管理演算法。塊裝置i o緩衝區 i o 緩衝的基本原理非常簡單。檔案系統使用一系列 i o 緩衝區作為塊裝置的快取記憶體。當程序試圖讀取 dev,blk 標識的磁碟塊時,它首先在緩衝...

《Unix Linux系統程式設計》第六章學習筆記

本章講述了訊號和訊號處理 介紹了訊號和中斷的統一處理,有助於從正確的角度看待訊號 將訊號視為程序中斷,將程序從正常執行轉移到訊號處理 解釋了訊號的 包括來自硬體 異常和其他程序的訊號 然後舉例說明了訊號在unix linux 中的常見用法 詳細解釋了 unix linux 中的訊號處理,包括訊號型別...

Linux系統程式設計(十)exec 族函式

exec函式族的作用是根據指定的檔名找到可執行檔案,並用它來取代呼叫程序的內容,換句話說,就是在呼叫程序內部執行乙個可執行檔案。exec函式族的函式執行成功後不會返回,因為呼叫程序的實體,包括 段,資料 段和堆疊等都已經被新的內容取代,只留下程序 id 等一些表面上的資訊仍保持原樣,頗有些神似 三十...