完成基於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...