在现代网络编程中,UDP(User Datagram Protocol) 是一种无连接、轻量级的传输协议,适用于对实时性要求高但可以容忍少量丢包的场景,比如视频流、在线游戏和 DNS 查询。本文将带你使用 Rust语言 从零开始实现一个简单的 UDP 客户端与服务器通信程序,即使你是编程新手,也能轻松上手!

Rust 以其内存安全、零成本抽象和并发安全等特性,成为系统级编程的热门选择。在 Rust网络编程 中,标准库提供了强大而简洁的 API,使得开发 UDP 应用既高效又安全。
确保你已安装 Rust。如果尚未安装,请访问 Rust 官网 并按照说明安装。安装完成后,在终端运行以下命令验证:
rustc --versioncargo --version打开终端,执行以下命令创建新项目:
cargo new rust_udp_democd rust_udp_demo在 src/main.rs 中,我们将先实现一个简单的 UDP 服务器。它会监听本地 8080 端口,并回显收到的消息。
use std::net::UdpSocket;fn main() -> std::io::Result<()> { // 绑定到本地 8080 端口 let socket = UdpSocket::bind("127.0.0.1:8080")?; println!("UDP 服务器已启动,监听 127.0.0.1:8080..."); let mut buf = [0; 1024]; loop { // 接收数据 let (amt, src) = socket.recv_from(&mut buf)?; let received = &buf[..amt]; println!("收到来自 {}: {:?}", src, String::from_utf8_lossy(received)); // 回显消息 socket.send_to(received, src)?; }}这段代码做了三件事:
127.0.0.1:8080为了测试服务器,我们需要一个客户端。我们可以复用同一个项目,通过命令行参数区分角色,但为了清晰起见,这里新建一个二进制目标。
修改 Cargo.toml,添加第二个可执行文件:
[package]name = "rust_udp_demo"version = "0.1.0"edition = "2021"[[bin]]name = "udp_server"path = "src/server.rs"[[bin]]name = "udp_client"path = "src/client.rs"创建 src/server.rs 和 src/client.rs 两个文件。
将上面的服务器代码粘贴到 src/server.rs 中。
现在,在 src/client.rs 中编写客户端代码:
use std::net::UdpSocket;use std::io::{self, Write};fn main() -> io::Result<()> { // 连接到服务器 let socket = UdpSocket::bind("127.0.0.1:0")?; socket.connect("127.0.0.1:8080")?; println!("UDP 客户端已连接到服务器。输入消息并按回车发送:"); loop { print!("> "); io::stdout().flush()?; let mut input = String::new(); io::stdin().read_line(&mut input)?; let msg = input.trim(); if msg.is_empty() { continue; } // 发送消息 socket.send(msg.as_bytes())?; // 接收回显 let mut buf = [0; 1024]; let amt = socket.recv(&mut buf)?; let response = &buf[..amt]; println!("服务器回显: {}", String::from_utf8_lossy(response)); }}打开两个终端窗口。
终端 1:启动服务器
cargo run --bin udp_server终端 2:启动客户端
cargo run --bin udp_client在客户端中输入任意文本(如 “Hello Rust!”),你会看到服务器打印接收到的消息,并且客户端收到回显。这表明 Rust UDP通信 已成功建立!
connect())。通过本教程,你已经掌握了如何使用 Rust语言 实现基本的 UDP客户端服务器 通信。这是学习更复杂网络应用(如 P2P、实时音视频传输)的重要基础。希望这篇 Rust语言教程 能帮助你迈出网络编程的第一步!
如果你觉得有帮助,欢迎分享给其他 Rust 初学者!
本文由主机测评网于2025-12-13发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://vpshk.cn/2025127230.html