外观
UDP 客户端
2025-09-22
概述
本文将介绍如何基于 睿擎工业开发平台 实现 UDP 客户端通信,以开发板作为 UDP 客户端与服务器交互为例,演示数据的发送操作,通过工程创建、编译及实际运行验证通信功能,帮助读者掌握 UDP 协议的无连接通信流程及本平台下的网络编程方法。
UDP 协议
UDP 协议是用于客户端-服务器模式的一种传输协议,如今的很多通信软件都是利用这个协议实现的,如腾讯 QQ 发送消息用的就是 UDP 协议。UDP 与 TCP 的不同之处是,他的通信不需要建立连接的过程。
UDP 客户端
开发板作为 UDP 客户端与服务器通信时,会接收并打印服务器发来的消息,同时每隔 1 秒持续向服务器发送 “This is UDP Client from RT-Thread.” 的消息。
创建工程点击展开
依次点击 “文件” -> “新建” -> "RT-Thread RuiChing App 项目"。

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

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

创建完成。

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

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

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

固件下载点击展开
固化设备树

固化 APP

核心示例代码
套接字初始化与绑定
使用
gethostbyname()进行域名解析,创建 UDP 套接字并配置服务器地址。applications/udpclient.c// DNS域名解析 host = (struct hostent *)gethostbyname(url); if (host == RT_NULL) { LOG_E("Get host by name failed!"); return; } // 创建UDP套接字 if ((sock = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP)) == -1) { LOG_E("Create socket error"); return; } // 配置服务器地址(设置地址族) server_addr.sin_family = AF_INET; // 配置服务器地址(设置端口号,需网络字节序转换) server_addr.sin_port = htons(port); // 配置服务器地址(设置IP地址) server_addr.sin_addr = *(struct in_addr *)host->h_addr; // 配置服务器地址(填充空白字节) rt_memset(&server_addr.sin_zero, 0, sizeof(server_addr.sin_zero));数据发送
在
count大于 0 且is_running为真时,循环向指定 UDP 服务器发送数据,每秒发送一次,直至发送次数耗尽或被终止。udpclient.cwhile (count && is_running) { // 发送数据 sendto(sock, send_data, rt_strlen(send_data), 0, (struct sockaddr *)&server_addr, sizeof(struct sockaddr)); rt_thread_mdelay(1000); count --; }
运行示例
操作步骤
查看服务器 IP
在命令行终端中执行
ifconfig命令,查看本机的 IP 地址、子网掩码及默认网关信息。C:\Users\RTT>ipconfig Windows IP 配置 以太网适配器 以太网: 连接特定的 DNS 后缀 . . . . . . . : 本地链接 IPv6 地址. . . . . . . . : fe80::a910:b54e:fcf2:aacd%6 IPv4 地址 . . . . . . . . . . . . : 10.23.8.146 子网掩码 . . . . . . . . . . . . : 255.255.255.0 默认网关. . . . . . . . . . . . . : 10.23.8.254 无线局域网适配器 WLAN: 媒体状态 . . . . . . . . . . . . : 媒体已断开连接 连接特定的 DNS 后缀 . . . . . . . : Lan设置开发板 IP
在串口调试助手中,通过命令行
ifconfig e0 10.23.8.38 10.23.8.254 255.255.255.0设置开发板的 IP 地址、默认网关和子网掩码,确保其与本机 IP 处于同一网段且网络配置一致。msh />ifconfig e0 10.23.8.38 10.23.8.254 255.255.255.0 config : e0 IP addr: 10.23.8.38 Gateway: 10.23.8.254 netmask: 255.255.255.0启动服务器
启动服务器程序后,将其 IP 设置为本机 IP 并配置端口号。

启动客户端
输入命令:
udpclient -h 10.23.8.146 -p 5000,启动 UDP 客户端。运行结果如下图所示:rtt 终端msh />udpclient -h 10.23.8.146 -p 5000 [I/UDP] UDP client send data finished!sscom[10:49:32.073]收←◆This is UDP Client from RT-Thread. [10:49:33.073]收←◆This is UDP Client from RT-Thread. [10:49:34.073]收←◆This is UDP Client from RT-Thread. [10:49:35.073]收←◆This is UDP Client from RT-Thread. [10:49:36.073]收←◆This is UDP Client from RT-Thread. [10:49:37.073]收←◆This is UDP Client from RT-Thread. [10:49:38.090]收←◆This is UDP Client from RT-Thread. [10:49:39.074]收←◆This is UDP Client from RT-Thread. [10:49:40.074]收←◆This is UDP Client from RT-Thread. [10:49:41.075]收←◆This is UDP Client from RT-Thread.
