基于UDP协议的进程间通信
发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,UDP协议的主要特点:UDP是无连接的UDP使用尽最大努力交付UDP是面向报文的没有拥塞控制支持一对一、一对多、多对一、多对多的交互通信UDP首部开销小UDP协议是无连接的并且面向数据块的。所以cli
千家信息网最后更新 2026年10月31日基于UDP协议的进程间通信
UDP协议的主要特点:
UDP是无连接的
UDP使用尽最大努力交付
UDP是面向报文的
没有拥塞控制
支持一对一、一对多、多对一、多对多的交互通信
UDP首部开销小
UDP协议是无连接的并且面向数据块的。所以client端不需要与server端进行连接,直接发送消息。
server: 1 #include2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 void usage(char *port) 9 { 10 printf("%s,[ip],[port]\n",port); 11 } 12 int main(int argc,char *argv[]) 13 { 14 if(argc!=3) 15 { 16 usage(argv[0]); 17 exit(1); 18 } 19 int sock = socket(AF_INET,SOCK_DGRAM,0); //创建套接字 20 if(sock<0) 21 { 22 perror("socket"); 23 return 1; 24 } 25 int port = atoi(argv[2]); 26 char *ip = argv[1]; 27 struct sockaddr_in client; 28 client.sin_family = AF_INET; 29 client.sin_port = htons(port); 30 client.sin_addr.s_addr = inet_addr(ip); 31 if(bind(sock,(struct sockaddr*)&client,sizeof(client))<0) 32 { 33 perror("bind"); 34 exit(1); 35 } 36 char buf[1024]; 37 struct sockaddr_in remote; 38 socklen_t len = sizeof(remote); 39 while(1) 40 { 41 ssize_t size = recvfrom(sock,buf,sizeof(buf),0,(struct sockaddr*)&re mote,&len); //接收消息 42 if(size>0) 43 { 44 buf[size-1]='\0'; 45 printf("%s,%d: %s\n",inet_ntoa(remote.sin_addr),ntohs(remote.sin _port),buf); 46 47 } 48 else if(size==0) 49 {} 50 else 51 { 52 perror("recvfrom"); 53 exit(2); 54 } 55 fflush(stdout); 56 } 57 return 0; 58 } client: 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 void usage(char *port) 10 { 11 printf("%s,[ip],[port]\n",port); 12 } 13 int main(int argc,char *argv[]) 14 { 15 if(argc!=3) 16 { 17 usage(argv[0]); 18 exit(1); 19 } 20 int sock = socket(AF_INET,SOCK_DGRAM,0); 21 if(sock<0) 22 { 23 perror("socket"); 24 return 1; 25 } 26 int port = atoi(argv[2]); 27 char *ip = argv[1]; 28 struct sockaddr_in remote; 29 remote.sin_family = AF_INET; 30 remote.sin_port = htons(port); 31 remote.sin_addr.s_addr = inet_addr(ip); 32 char buf[1024]; 33 while(1) 34 { 35 memset(buf,'\0',sizeof(buf)); 36 ssize_t _s = read(0,buf,sizeof(buf)-1); 37 if(_s<0) 38 { 39 perror("read"); 40 exit(1); 41 } 42 ssize_t size = sendto(sock,buf,strlen(buf),0,(struct sockaddr*)&remo te,sizeof(remote)); //发送消息 43 if(size<0) 44 { 45 perror("sendto"); 46 exit(1); 47 } 48 49 } 50 return 0; 51 } [fbl@localhost udp]$ ./server 192.168.1.106 8080192.168.1.106,33647: how are you192.168.1.106,33647: hi192.168.1.106,33647: hnxu^C[fbl@localhost udp]$ [fbl@localhost udp]$ ./client 192.168.1.106 8080how are youhihnxu^C[fbl@localhost udp]$
消息
通信
最大
一对一
套接字
开销
报文
数据
特点
控制
支持
进程
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
咖啡网
耶加雪菲
新华互联网科技学院
互联网为科技
互联网科技资迅
上海互联网科技有限公司
唐信互联网科技
电子科技大学互联网
长亮科技 互联网金融
世界互联网科技公司市值排名
链环科技传统企业怎么转型互联网
21世纪互联网科技成就
昆明中奇联合互联网科技
互联网时代科技型公司的机会
中国新注册互联网科技
万物互联网智能科技
互联网领先科技活动
陕西彩京云互联网科技有限公司
承德科技产业互联网平台
高科技和互联网的现代国家
手冲咖啡和咖啡机区别
上海睿民互联网科技有限公司
互联网科技卖菜
互联网 新科技
农村开互联网科技讲堂
华夏恒生科技与互联网科技
互联网数据科技专业
城市宝互联网科技有限公司
银川新华互联网科技学校是国营吗
保山浩联互联网科技有限公司