UDP網路程式設計

2021-06-16 06:11:11 字數 1848 閱讀 2031

基於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 通訊模型 由上圖可以看出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協議在傳送資料前不需要建立連...

網路程式設計 UDP

一 udp協議 1 udp協議 udp與tcp一樣,都屬於運輸層協議,udp為應用層提供不可靠 無連線的 基於資料報的服務。2 udp報頭 3 udp與tcp的比較 tcp 它是一種面向連線的,可靠的,流式服務。udp 它是一種無連線的,不可靠的,資料報服務 tcp的 可靠 tcp協議使用超時重傳 ...