0905網路模型

2021-06-25 18:09:34 字數 1020 閱讀 6599

pid_t waitpid( pid_t pid, 

int * status,  int options ); 

pid<-1 等待程序組識別碼為 pid 絕對值的任何子程序。

pid=-1 等待任何子程序,相當於 wait()。

pid=0 等待程序組識別碼與目前程序相同的任何子程序。

pid>0 等待任何子程序識別碼為 pid 的子程序。

options 選項中 

wnohang若pid指定的子程序沒有結束,則waitpid()函式返回0,不予以等待。若結束,則返回該子程序的id。

pipe (無名管道) 只能在乙個程序中通訊;

與pipe 對應的

socketpair ( ) 

可以在不同程序間通訊  ;

任務1: tcp 實現程序池 ,先fork( ) 好一堆子程序,在客戶端來請求時,將資訊交給子程序處理;

int fds 父子程序見通訊的描述符

1. socketpair ( fds ) 建立父程序 與 子程序 間的通訊,將描述符放在 乙個陣列或者鍊錶中 

一般存放 父程序的 由socketpair ( )建立的描述符合 , 在乙個flag 標誌,判斷子程序是否在工作

2. sendmsg 和 recvmsg  父程序只負責監聽客戶端的請求,每次客戶端來請求後,伺服器將 客戶端的fd_client描述符傳遞給 子程序, 這裡傳描述符(需要 sendmsg函式, 普通的send 不能傳 fd)

3.  伺服器中 利用 select 函式  ; 將伺服器中fd_listen 監聽 , 伺服器與子程序間的 fds(伺服器方的fds加入select )

在select中 ,當fd_listen 有訊號時,知道有新的客戶端來訪問,分配乙個子程序給客戶端;

在select中 ,當 伺服器與子程序的fds(群)中乙個有訊號時,知道是與之對應的子程序發來資訊(我們這裡約定,客戶端退出後,子程序沒活幹了發個訊號給伺服器,告訴伺服器子程序空閒了)

具體見 0905 號 **;

udp 則比較簡單

9 1 1 網路模型

9.1.1 osi七層模型。1.應用層 一般指應用程式,該層主要負責確定通訊物件。常用協議有ftp,http,snmp 2.表示層 資料的編碼和轉化,根據不同的應用目的將資料處理為不同格式,表現出各種副檔名。3.會話層 負責在網路中的兩個結點之間建立,維護,控制會話。提供單工,半雙工,全雙工 x,h...

2018 9 14 網路模型

物理層 利用傳輸介質為資料鏈路層提供物理連線,位元流傳輸 資料鏈路層 為網路層提供服務,解決兩個相鄰結點之間的通訊問題,負責透明傳輸資料幀,傳送的協議資料單元稱為資料幀,資料幀中包含實體地址 mac 控制碼 資料及校驗碼等資訊,該層的主要作用是通過校驗 確認和反饋重發手段,將不可靠的資料鏈路層轉換為...

6 1 網路應用模型

一 客戶 伺服器模型 在客戶 伺服器模型中,有乙個總是開啟的主機稱為伺服器,它服務於許多來自其他稱為客戶機 的主機請求。其工作流程如下 1 伺服器處於接收請求的狀態。2 客戶機發出服務請求,並等待接收結果。3 伺服器收到請求後,分析請求,進行必要的處理,得到結果並傳送給客戶機。客戶程式必須直到伺服器...