UDP網路程式設計

2021-08-18 17:03:58 字數 2693 閱讀 2823

udp執行模式如圖:

程式執行效果如下:

服務端:

客戶端:

服務端原碼:

#include #include #include #include #include #include #include /*  

繫結套接字後,一直處於recvfrom阻塞狀態, 直到有客戶端連線

輸入 讀取eof後關閉伺服器 */

#define port 3333

void main()

printf("套接字建立成功\n\r");

/******************清空位址結構**************/

memset(&s_addr,0,sizeof(struct sockaddr_in));

/*****************設定埠和位址資訊***********/

s_addr.sin_family = af_inet;

s_addr.sin_port = htons(port);

s_addr.sin_addr.s_addr = htonl(inaddr_any);

/***************繫結位址和埠***********/

if(bind(sockfd,(struct sockaddr*)&s_addr,sizeof(s_addr)) < 0)

printf("繫結位址成功\n\r");

/***************迴圈接收資料************/

addr_len =sizeof(c_addr);

while(1)else

//eof,斷開連線

if(strncmp(buff,"eof",3) == 0)

/********************sendto用於傳送資料請求****************/

//引數:

// sockfd:套接字

// buf:傳送資料緩衝區

// nbytes:傳送資料緩衝區的大小

// flags:一般為0

// addrlen:to所指向內容的長度

//返回值:成功:傳送的字元數;失敗: -1

printf("\n請輸入:");

fflush(stdout);

scanf("%s",buff);

len = sendto(sockfd,buff,sizeof(buff)+1,0,(struct sockaddr*)&c_addr,addr_len);

if(len < 0)else

printf("傳送成功\n");

//eof,斷開連線

if(strncmp(buff,"eof",3) == 0)

}//while

close(sockfd);

printf("程式結束\n");

return;

}

客戶端原碼:

#include #include #include #include #include #include #include /*  

連線到伺服器後,會不停迴圈,等待輸入,

輸入 讀取eof後斷開連線並關閉客戶端*/

#define port 3333

void main()

printf("套接字建立成功\n\r");

/******************清空位址結構**************/

memset(&s_addr,0,sizeof(struct sockaddr_in));

/**************設定伺服器端口和位址資訊***********/

s_addr.sin_family = af_inet;

s_addr.sin_port = htons(port);

s_addr.sin_addr.s_addr = inet_addr("127.0.0.1");

/***************迴圈接收資料************/

addr_len =sizeof(s_addr);

while(1)else

printf("傳送成功\n");

//eof,斷開連線

if(strncmp(buff,"eof",3) == 0)

/********************recvfrom接收資料*********************/

len = recvfrom(sockfd,buff,sizeof(buff)-1,0,(struct sockaddr*)&s_addr,&addr_len);

if(len < 0)else

//eof,斷開連線

if(strncmp(buff,"eof",3) == 0)

}close(sockfd);

printf("程式結束\n");

return;

}

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...

網路程式設計 UDP

網路程式設計傳輸層選擇乙個資料控制模式 tcp或者udp,前面我們已經介紹了tcp程式設計,這篇我們簡單的來看看udp程式設計。udp是無連線的不可靠的資料報服務。udp協議在ip協議上增加了復用 分用和差錯檢測功能。udp的特點 a 是無連線的。相比於tcp協議,udp協議在傳送資料前不需要建立連...