新闻详情

新闻详情

首页 / 资讯中心 / 详情

网络编程:UDP协议

发布时间:2026/9/27 5:52:15来源:尧图网络
网络编程:UDP协议
一、是什么UDPUser Datagram Protocol用户数据报协议是一种简单的、无连接的传输层协议用于在网络中传输数据。与 TCP 不同UDP 不提供可靠性、顺序性和流量控制但它具有低延迟和高效的特点适合对实时性要求较高的应用。UDP 是一种无连接协议客户端和服务器之间不需要建立连接即可发送数据。它的核心功能是快速传输数据包。二.UDP 数据包结构UDP 数据包由以下部分组成源端口发送方的端口号。目的端口接收方的端口号。长度数据包的总长度包括头部和数据。校验和用于检测数据包是否损坏可选。数据实际传输的数据三、编程1.socket与TCP相同2.socket之后直接收发1发送ssize_t sendto(int sockfd, const void *buf, size_t len, int flags,const struct sockaddr *dest_addr, socklen_t addrlen);功能:sendto 将数据发送到指定的地址中通过sockfd参数:sockfd --- 表示socket对应的fdbuf --- 存放数据的一块内存空间len --- 表示要发送的字节数flags --- 发送的标志 MSG_DONWAIT //非阻塞 --- 不在等 0 ---默认方式dest_addr --- 目标地址 --- 代表要发送到的目的地址addrlen --- 代表 目标地址数据的长度 sizeof(dest_addr)返回值:成功 返回发送出去的字节数 失败 -1 errno被设置2接收ssize_t recvfrom(int sockfd, void *buf, size_t len, int flags,struct sockaddr *src_addr, socklen_t *addrlen);功能:从socket中接收消息参数:sockfd --- 表示socket对应的fdbuf --- 存放数据的一块内存空间len --- 表示打算读取的字节数flags --- 读取的标志 MSG_DONWAIT //非阻塞 --- 不在等src_addr --- 表示数据的源地址addrlen --- 源地址大小值结果参数ocklen_t addrlen sizeof(src_addr);返回值:成功 返回读取到的字节数 失败 -1 errno被设置客户端#include stdio.h #include sys/types.h /* See NOTES */ #include sys/socket.h #include netinet/in.h #include netinet/ip.h /* superset of previous */ #include strings.h #include string.h #include arpa/inet.h int main(int argc, const char *argv[]) { int clifd socket(AF_INET,SOCK_DGRAM,0); if (clifd 0) { perror(socket fail); return -1; } //bind //sendto 鍑芥暟 char buf[1024] hello udp!\n; struct sockaddr_in seraddr; bzero(seraddr,sizeof(seraddr)); seraddr.sin_family AF_INET; seraddr.sin_addr.s_addr inet_addr(127.0.0.1); seraddr.sin_port htons(50000); sendto(clifd,buf,strlen(buf)1,0,(const struct sockaddr *)seraddr,sizeof(seraddr)); return 0; }服务器#include stdio.h #include sys/types.h /* See NOTES */ #include sys/socket.h #include netinet/in.h #include netinet/ip.h /* superset of previous */ #include strings.h #include arpa/inet.h int main(int argc, const char *argv[]) { int serfd socket(AF_INET,SOCK_DGRAM,0); if (serfd 0) { perror(socket fail); return -1; } //bind struct sockaddr_in seraddr; bzero(seraddr,sizeof(seraddr)); seraddr.sin_family AF_INET; seraddr.sin_addr.s_addr INADDR_ANY; seraddr.sin_port htons(50000); if (bind(serfd,(const struct sockaddr*)seraddr,sizeof(seraddr)) 0) { perror(bind fail); return -1; } //recvfrom 鍑芥暟 char buf[1024]; struct sockaddr_in srcaddr; socklen_t len sizeof(srcaddr); recvfrom(serfd,buf,sizeof(buf),0,(struct sockaddr*)srcaddr,len); printf(-------------------\n); printf(ip %s\n,inet_ntoa(srcaddr.sin_addr)); printf(port %d\n,ntohs(srcaddr.sin_port)); printf(buf %s\n,buf); return 0; }
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

从排练厅到论文初稿:表演艺术生的 AI 工具搭配清单 [特殊字符] 2026/9/27 6:35:59

从排练厅到论文初稿:表演艺术生的 AI 工具搭配清单 [特殊字符]

先把场景说具体一点: 假设你是表演艺术专业学生,毕业作品是一部小剧场话剧,毕业论文要写《小剧场话剧排练中的“身体叙事”方法——基于毕业大戏〈长椅〉的实践研究》。你手里有剧本、排练记录、导演阐述、演员训练日志、观众问卷、访谈录音…

阅读更多 →
后端服务集成国产 LLM 网关:基于延迟与成本的架构选型实录 2026/9/27 6:35:59

后端服务集成国产 LLM 网关:基于延迟与成本的架构选型实录

后端服务集成国产 LLM 网关:基于延迟与成本的架构选型实录上周有个需求,我们要在 Spring Boot 3.4.5 的微服务架构中嵌入代码辅助与长文档摘要功能。核心痛点不是“能不能用”,而是“选哪家才不亏”。市面上 GLM-5.3、DeepSeek-V4.1、Kimi K3…

阅读更多 →
一个完整的网站推广方案对比评测 2026/9/27 6:35:59

一个完整的网站推广方案对比评测

拒绝瞎折腾:一份落地执行的网站推广避坑指南 网站上线三个月,后台日志里除了蜘蛛就是你自己?这种“网站做好了没人访问”的憋屈感,相信很多做站的朋友都经历过。别急着怪搜索引擎变脸,很多时候是我们推广思路没理顺,钱花在了刀刃外。今天咱们不聊虚的,…

阅读更多 →
谷粉学术课堂:AI+生物文献综述与知识图谱构建 2026/9/27 6:35:58

谷粉学术课堂:AI+生物文献综述与知识图谱构建

生物医学文献正以惊人的速度增长,仅靠人工阅读与整理,已难以支撑系统的知识梳理。2026年,大语言模型与知识图谱的结合,正在把文献工作从“逐篇精读”推向“批量理解、自动关联、辅助发现”的新阶段。对于生物信息学、药理学及转化…

阅读更多 →
Lap Linux部署教程:Ubuntu/Debian的DEB与AppImage双方案详解 2026/9/27 6:35:52

Lap Linux部署教程:Ubuntu/Debian的DEB与AppImage双方案详解

Lap Linux部署教程:Ubuntu/Debian的DEB与AppImage双方案详解 【免费下载链接】lap An offline-first photo manager for large local libraries 项目地址: https://gitcode.com/GitHub_Trending/lap3/lap Lap 是一款开源、离线优先(Offline-First…

阅读更多 →
Apache Pulsar 主题统计(Topic Stats)详解:从命令行到源码级的指标解读 2026/9/27 6:35:46

Apache Pulsar 主题统计(Topic Stats)详解:从命令行到源码级的指标解读

消息队列后端流处理 【免费下载链接】pulsar Apache Pulsar - distributed pub-sub messaging system 项目地址: https://gitcode.com/gh_mirrors/pulsar28/pulsar 点击查看 免费下载 Apache Pulsar 提供了丰富的主题级(topic-level)统计信息…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉