UDP網路程式設計

2021-08-25 21:30:51 字數 1856 閱讀 7171

基於udp——伺服器

程式步驟:1.建立乙個socket,用socket()函式

2.繫結ip位址、埠等資訊到socket上,用函式bind()

3.迴圈接收資料,用recvfrom()

4.關閉網路連線。

基於udp——客戶端

程式步驟:1.建立乙個socket,用socket()函式

2.繫結ip位址、埠等資訊到socket上,用函式bind()

3.設定對方的ip位址、埠等屬性

4.傳送資料,用函式sendto()

5.關閉網路連線。

通訊模型

乙個通訊例項:

udp_server.c如下:

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#define server_port 8888

#define max_msg_size 1024

void udps_respon(int sockfd) }

int main(void)

/* 伺服器端填充 sockaddr結構 */

bzero(&addr,sizeof(struct sockaddr_in));

addr.sin_family=af_inet;

addr.sin_addr.s_addr=htonl(inaddr_any);

addr.sin_port=htons(server_port);

/* **sockfd描述符 */

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

udps_respon(sockfd); // 進行讀寫操作

close(sockfd); }

udp_client.c如下:

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#define server_port 8888

#define max_buf_size 1024

void udpc_requ(int sockfd,const struct sockaddr_in *addr,int len) }

int main(int argc,char **argv)

/* 建立 sockfd描述符 */

sockfd=socket(af_inet,sock_dgram,0);

if(sockfd<0)

/* 填充服務端的資料 */

bzero(&addr,sizeof(struct sockaddr_in));

addr.sin_family=af_inet;

addr.sin_port=htons(server_port);

if(inet_aton(argv[1],&addr.sin_addr)<0) /*inet_aton函式用於把字串型的ip位址轉化成網路2進製數字*/

udpc_requ(sockfd,&addr,sizeof(struct sockaddr_in)); // 進行讀寫操作

close(sockfd); }

(完)

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協議在傳送資料前不需要建立連...