外观
UDP 客户端示例
2026-06-01
概述
本文介绍如何在 睿擎工业开发平台 中创建并运行 UDP 客户端 示例工程,通过基于标准 POSIX Socket 接口的实现,演示了客户端向远程服务器发送数据报的完整流程。
UDP 客户端简介
UDP 客户端(UDP Client) 是网络编程中一种轻量级的通信模式。与 TCP 不同,它基于 User Datagram Protocol (UDP),采用无连接(Connectionless)的传输方式。
引脚连接
为保证代码与实际操作一致,本示例在 TL3576-EVM 开发板上,请使用网线将主机与开发板连接起来:

构建与烧录
创建工程点击展开
依次点击 “文件” -> “新建” -> "RT-Thread RuiChing App 项目"。

在弹出新建向导中选择 开发版 、BSP: 、示例 、 调试器/下载器。选择好之后点击 “完成”。

点击 “完成” 后,等待工程创建完成。

创建完成。

构建工程点击展开
单击工程使工程进入 Active-Debug 模式。

点击工具栏上的构建按钮进行工程编译。

构建成功后,会显示构建成功的信息。

固件下载点击展开
固化驱动

固化 APP

核心示例代码
工程中的核心代码位于 applications 目录下,提供 UDP 连接、数据周期性发送以及资源管理等功能。下面详细分析:
- 初始化与连接建立
通过 gethostbyname() 解析服务器域名或 IP,创建 UDP 数据报套接字(SOCK_DGRAM),并配置目标服务器的地址与端口信息。
udpclient_example.c
// DNS域名解析
host = (struct hostent *)gethostbyname(_url);
if (host == RT_NULL)
{
rt_kprintf("Get host by name failed!\n");
return;
}
// 创建UDP套接字
if ((sock = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP)) == -1)
{
rt_kprintf("Create socket error\n");
return;
}
// 设置套接字选项
server_addr.sin_family = AF_INET;
server_addr.sin_port = htons(_port);
server_addr.sin_addr = *((struct in_addr *)host->h_addr);
rt_memset(&(server_addr.sin_zero), 0, sizeof(server_addr.sin_zero));- 数据周期性发送
UDP 客户端采用无连接方式,利用 sendto 接口循环发送数据。线程通过 rt_thread_mdelay 实现定时发送,并支持通过命令行动态配置发送次数。
udpclient_example.c
while (_count && _is_running)
{
// 发送数据
sendto(sock, _send_data, rt_strlen(_send_data), 0,
(struct sockaddr *)&server_addr, sizeof(struct sockaddr));
rt_thread_mdelay(1000);
_count --;
}运行示例
操作步骤
- 将程序下载到开发板
- 打开串口终端连接开发板
- 配置开发板网络
- 启动服务器程序
- 输入
udpclient_example命令
步骤 1:查看服务器 IP
在 windows cmd 中执行 ifconfig 命令,查看本机的 IP 地址、子网掩码及默认网关信息。
C:\Users\RTT>ipconfig
Windows IP 配置
以太网适配器 以太网 2:
连接特定的 DNS 后缀 . . . . . . . :
本地链接 IPv6 地址. . . . . . . . : fe80::cf98:15ca:965f:56b1%10
IPv4 地址 . . . . . . . . . . . . : 192.168.1.2
子网掩码 . . . . . . . . . . . . : 255.255.255.0
默认网关. . . . . . . . . . . . . : 192.168.1.1步骤 2:设置开发板 IP
在串口调试助手中,通过命令行 ifconfig e0 192.168.1.3 192.168.1.1 255.255.255.0 设置开发板的 IP 地址、默认网关和子网掩码,确保其与本机 IP 处于同一网段且网络配置一致。
msh />ifconfig e0 192.168.1.3 192.168.1.1 255.255.255.0
config : e0
IP addr: 192.168.1.3
Gateway: 192.168.1.1
netmask: 255.255.255.0步骤 3:启动服务器
启动服务器程序后,将其 IP 设置为本机 IP 并配置端口号,然后开启连接监听。

步骤 4:启动客户端
输入命令:udpclient_example 192.168.1.2 5000,启动 UDP 客户端并连接到指定的服务器。
预期结果:
- UDP 客户端成功连接到服务器
- 服务器发送数据后,客户端能正确接收并打印
- 客户端自动回复固定消息给服务器
RT-Thread 终端
msh />udpclient_example 192.168.1.2 5000
msh />UDP client send data finished!sscom
[17:13:59.113]收←◆This is UDP Client from RT-Thread.
[17:14:00.123]收←◆This is UDP Client from RT-Thread.
[17:14:01.133]收←◆This is UDP Client from RT-Thread.
[17:14:02.142]收←◆This is UDP Client from RT-Thread.
[17:14:02.699]发→◇456456
[17:14:03.101]发→◇456456
[17:14:03.153]收←◆This is UDP Client from RT-Thread.
[17:14:03.326]发→◇456456
[17:14:03.924]发→◇456456
[17:14:04.102]发→◇456456
[17:14:04.163]收←◆This is UDP Client from RT-Thread.
[17:14:04.238]发→◇456456
[17:14:05.173]收←◆This is UDP Client from RT-Thread.