unix網路程式設計(2) 客戶端 伺服器第二版

2022-03-16 01:57:52 字數 901 閱讀 6952

前一節講述了最基本的客戶端-伺服器,本節講述如何解決殭屍子程序**問題。

我們知道,子程序退出後,父程序可以通過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...