基於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協議使用超時重傳 ...