網路程式設計 C S模型 UDP

2021-09-28 23:07:22 字數 2134 閱讀 5570

目錄

一、udp模型

1、服務端

2、客戶端

二、測試程式

1、服務端

2、客戶端

沒有 accept,不需要建立建立連線;

使用 recvfrom 代替 read,失敗返回 -1,成功返回 - 從核心緩衝區讀到的位元組數

使用 sendto 代替 write,失敗返回 -1,成功返回 - 寫到核心緩衝區的位元組數

struct sockaddr_in servaddr;

struct sockaddr_in connaddr;

socklen_t servsocklen; // 本地已知

socklen_t connsocklen; // 對端未知

lfd = socket(af_inet, sock_dgram, 0);

bind(lfd, &servaddr, servsocklen); //(struct sockaddr *)&servaddr

listen(lfd, maxlistensize);

while(1)

沒有 connect,不需要建立建立連線;

使用 sendto 代替 write,失敗返回 -1,成功返回 - 寫到核心緩衝區的位元組數

使用 recvfrom 代替 read,失敗返回 -1,成功返回 - 從核心緩衝區讀到的位元組數

struct sockaddr_in servaddr;

struct sockaddr_in clieaddr;

socklen_t servsocklen; // 對端已知

socklen_t cliesocklen; // 本地已知

cfd = socket(af_inet, sock_dgram, 0);

//bind(lfd, &clieaddr, cliesocklen); //(struct sockaddr *)&clieaddr

while(1)

#include #include #include #include #include #include #include #define serv_ip     "127.0.0.1"

#define serv_port 6666

int main()

printf("client ip: %s, client port: %d\n", inet_ntop(af_inet, &clie_addr.sin_addr.s_addr, clie_ipbuf, (socklen_t)sizeof(clie_ipbuf)), ntohs(clie_addr.sin_port));

printf("%s\n", buf);

//處理

for(i=0; i#include #include #include #include #include #include #define serv_ip "127.0.0.1"

#define serv_port 6666

#define clie_port 8888 // 固定埠

int main()

n = sendto(clie_fd, buf, strlen(buf), 0, (struct sockaddr *)&serv_addr, serv_addr_len);

if(n < 0)

//讀取

memset(buf, 0, sizeof(buf));

n = recvfrom(clie_fd, buf, sizeof(buf), 0, (struct sockaddr *)&serv_addr, &serv_addr_len);

if(n < 0)

//列印處理,有問題,可能不是c風格字串

printf("%s\n", buf); }

close(clie_fd);

printf("client close...\n");

return 0;

}

UDP程式設計模型

udp程式設計模型 基於udp伺服器 1 建立乙個socket,用函式socket 2 繫結ip位址 埠等資訊到socket上,用函式bind 3 迴圈接收資料,用函式recvfrom 4 關閉網路連線 基於udp客戶端 1 建立乙個socket,用函式socket 2 繫結ip位址 埠等資訊到so...

UDP網路程式設計

基於udp 伺服器 程式步驟 1.建立乙個socket,用socket 函式 2.繫結ip位址 埠等資訊到socket上,用函式bind 3.迴圈接收資料,用recvfrom 4.關閉網路連線。基於udp 客戶端 程式步驟 1.建立乙個socket,用socket 函式 2.繫結ip位址 埠等資訊到...

UDP網路程式設計

基於udp 通訊模型 由上圖可以看出udp通訊的步驟如下 基於udp 伺服器 1 建立乙個socket,用函式socket 2 繫結ip位址 埠等資訊到socket上,用函式bind 3 迴圈接收資料,用函式recvfrom 4 關閉網路連線 基於udp 客戶端 1 建立乙個socket,用函式so...