前一節講述了最基本的客戶端-伺服器,本節講述如何解決殭屍子程序**問題。
我們知道,子程序退出後,父程序可以通過wait獲取子程序的狀態,而後清楚子程序剩餘核心空間,從而避免殭屍程序造成的記憶體洩露。
對於wait函式,一般使用wait或waitpid兩個函式,其區別主要是,waitpid可以指定pid獲取子程序狀態,並且waitpid具有非阻塞程序選項。我們這裡使用waitpid函式。
#include
pid_t waitpid(pid_t pid, int *statloc, int option);
若成功,返回子程序id。出錯返回0或-1。
伺服器**如下:(客戶端復用第一版)
1 #include 2 #include 3 #include in.h>4 #include 5 #include
6 #include 7 #include 8 #include 9
10#define maxline 1024
1112
extern
interrno;
1314
void str_echo(int
);15
16void sig_chld(int
);17
18int
main() 42}
4344 printf("
server end!\n");
45return0;
46}4748
void str_echo(int
sockfd) else
if (n < 0
) 64}65
}6667void sig_chld(int
signo)
73return
;74 }
網路程式設計基礎(伺服器,客戶端)
伺服器端程式設計步驟 1 建立套接字socket,初始化網路結構struct sockaddr in 2 bind繫結 伺服器必須執行此函式,客戶端可選 3 listen 設定監聽數 4 accept接受連線請求 客戶端程式設計步驟 1 建立套接字socket,初始化網路結構 2 connect向伺...
Linux 網路程式設計 基本伺服器 客戶端
前言 我們開始學習網路程式設計,儘管接下來的速度會非常快,但是我還是希望事事具細。首先我們以乙個回射伺服器來說說流程。變數部分 listenfd 監聽字 connfd 鏈結字 childpid 伺服器程序id cliaddr 客戶端套接字結構體 servaddr 服務端套接字結構體 函式部分 soc...
網路程式設計(伺服器與客戶端交流)
網路程式設計 tcp協議 c s程式 伺服器與客戶端 b s是網頁與客戶端 需要使用兩個類,來編寫tcp協議的cs程式 1.serversocket 搭建伺服器 2.socket 搭建客戶端 兩方使用socket 套接字,通訊端點 進行交接 serversocket 構造方法 serversocke...