實驗5 linux網路程式設計

2021-10-11 03:21:58 字數 2711 閱讀 9364

完成基於tcp的客戶端和伺服器程式編寫,要求伺服器採用迴圈方式處理客戶端的資料。

server.c

#include

#include

#include

#include

#include

#include

#include

#include

#define server_port 5012

#define serv_ip="127.0.0.1"

intmain

(void

)else

// bzero(&seraddr,sizeof(seraddr));

seraddr.sin_family = af_inet;

seraddr.sin_port =

htons

(server_port)

;//1024 ~ 49151:普通使用者註冊的埠號

seraddr.sin_addr.s_addr =

htonl

(inaddr_any)

; ret=

bind

(listensocket,

(struct sockaddr *

)&seraddr,

sizeof

(seraddr));

// 繫結這個套節字到乙個本地位址

if(ret ==-1

)listen

(listensocket,

128)

;// 進入監聽模式,監聽佇列中允許保持的尚未處理的最大連線數

if(ret ==-1

) clie_addr_len =

sizeof

(cliaddr)

; clientsocket=

accept

(listensocket,

(struct sockaddr *

)&cliaddr,

&clie_addr_len)

;// 接受乙個新連線,指向本地資料結構sockaddr_in的指標,

//呼叫connect()的資訊將儲存在該結構中,返回乙個socket 埠,用來通訊

if(clientsocket ==-1

)while(1

)close

(clientsocket)

;// 關閉套節字

close

(listensocket)

;return0;

}

client.c

#include

#include

#include

#include

#include

#include

#define server_port 5012

#define serv_ip="127.0.0.1"

intmain

(void

)close

(clientsocket)

;// 關閉套節字

return0;

}

執行截圖

完成基於udp的客戶端和伺服器程式編寫,要求伺服器採用迴圈方式處理客戶端的資料。

udpserver.c

#include

#include

/*socket() bind()*/

#include

/*struct sockaddr_in*/

#include

/*memset*/

#include

#include

void

udpserv_echo

(int

,struct sockaddr*);

intmain

(int argc,

char

*ar**)

void

udpserv_echo

(int s,

struct sockaddr*addr_clie)

}

udpclient.c

#include

#include

/*socket() bind()*/

#include

/*struct sockaddr_in*/

#include

/*memset()*/

#include

void

udpclie

(int

,struct sockaddr*);

intmain

(int argc,

char

*ar**)

void

udpclie

(int s,

struct sockaddr*to)

}

執行截圖

5 Linux時間程式設計

include time t time time t calptr 返回距計算機元年的秒數 define time t long include struct tm gmtime const time t calptr 獲取世界標準時間utc struct tm include struct tm ...

5Linux目錄處理指令

目錄處理命令 mkdir 建立新目錄make directories 語法 mkdir p x p 遞迴建立 mkdir tmp xiaodianying 在根目錄下的tmp資料夾內建立乙個xiaodianying的資料夾 mkdir p tmp japan boduo tmp本來是不存在的,一下子...

5 linux裝置驅動 記憶體申請

動態記憶體分配 1 kmalloc size t size int flag 和kfree const void addr 分配核心內部的動態記憶體,記憶體分配速度快,但是大小限制在 32 page size 即32 4k 以內 2 vmalloc unsigned long size 和vfree...