行业知识
【Linux C | 网络编程】入门知识:UDP协议、一个最简单的UDP客户端、一个最简单的UDP服务端
2026-10-22 02:40:26
来源:互联网转载
博客主页:https://blog.csdn.net/wkd_007
博客内容:嵌入式开发、Linux、C语言、C++、数据结构、音视频
本文内容:介绍网络编程入门知识:UDP协议、UDP客户端、UDP服务端
金句分享:你不能选择最好的,但最好的会来选择你——泰戈尔
⏰发布时间⏰:2024-02-29 09:23:52
本文未经允许,不得转发!!!
目录
- 一、UDP协议概述
- 二、一个最简单的UDP客户端
- ✨2.1 udp客户端步骤和代码
- ✨2.2 udp客户端相关函数
- 三、一个最简单的UDP服务端
- ✨2.1 udp服务端步骤和代码
- ✨2.2 udp服务端相关函数
- 四、总结
一、UDP协议概述
UDP协议是一个简单的传输层协议,在RFC 768 [Postel 1980]中有详细说明。应用进程往一个UDP套接字写入一个消息,该消息随后被封装( encapsulating)到一个UDP数据报,该UDP数据报进而又被封装到一个IP数据报,然后发送到目的地。UDP不保证UDP数据报会到达其最终目的地,不保证各个数据报的先后顺序跨网络后保持不变,也不保证每个数据报只到达一次。
UDP协议的几个特点:
- 1、UDP提供无连接服务。UDP客户端与UDP服务端不必存在任何长期的关系。一个UDP客户端可以发送一个数据报给一个UDP服务端,然后又立即发送另一个数据报给另一个UDP服务端。同样地,UDP服务端可以用一个UDP套接字接收多个UDP客户端数据。
- 2、UDP是不可靠性。UDP不保证UDP数据报会到达其最终目的地,不保证各个数据报的先后顺序跨网络后保持不变,也不保证每个数据报只到达一次。
TCP会给每个分节关联一个序列号,如果接收到重复数据,可以判定数据重复并丢弃。
- 3、每个数据报都有一个长度,并随着数据报一并传递给接收端进程。不同于没有任何记录边界的字节流协议TCP。
二、一个最简单的UDP客户端
✨2.1 udp客户端步骤和代码
编写UDP客户端的步骤:
- 1、创建UDP套接字socket:SOCK_DGRAM;
- 2、准备UDP服务端ip和端口,bzero、inet_pton
- 3、使用sendto、recvfrom交互数据;
- 4、关闭套接字
// udpCli.c// gcc udpCli.c -o udpCli#include #include #include #include #include int main(){// 1、创建UDP套接字socketint sockfd = socket(AF_INET, SOCK_DGRAM, 0);if(sockfdrecvline[n] = 0 ;/*null terminate */printf("recv[%s]\n",recvline);}if (n
上一篇:怎么做付费网站?