发布于2026-07-24 阅读(0)
扫一扫,手机访问
在CentOS上搞Rust网络编程,这事儿其实比想象中要直接得多。先别急着写代码,把环境搭好才是正经事。下面咱们一步步来,从零开始,把整个流程跑通。

装好Rust——这是所有工作的前提。用下面这条命令就能搞定,它会自动下载安装脚本并执行:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
装完之后,记得把Rust加到PATH里,否则命令行找不到rustc和cargo:
source $HOME/.cargo/env新建一个Rust项目——用cargo new命令,名字随你取,比如叫rust_network_program:
cargo new rust_network_program
cd rust_network_program添加依赖——网络编程免不了要用现成的库。如果打算用异步框架,tokio和hyper是经典组合。打开Cargo.toml,在[dependencies]下面加上:
[dependencies]
tokio = { version = "1", features = ["full"] }
hyper = "0.14"
当然,如果你只是做个简单的TCP实验,标准库就够了,这一步可以跳过。
写网络代码——打开src/main.rs,开始撸代码。下面这个例子是一个TCP回显服务器,监听8080端口,收到什么就返回什么:
use std::io::{Read, Write};
use std::net::{TcpListener, TcpStream};
fn handle_client(mut stream: TcpStream) {
let mut buffer = [0; 512];
loop {
let bytes_read = match stream.read(&mut buffer) {
Ok(n) if n == 0 => return,
Ok(n) => n,
Err(e) => {
eprintln!("Error reading from socket: {:?}", e);
return;
}
};
if let Err(e) = stream.write_all(&buffer[..bytes_read]) {
eprintln!("Error writing to socket: {:?}", e);
return;
}
}
}
fn main() -> std::io::Result<()> {
let listener = TcpListener::bind("127.0.0.1:8080")?;
for stream in listener.incoming() {
match stream {
Ok(stream) => {
std::thread::spawn(|| handle_client(stream));
}
Err(e) => {
eprintln!("Error: {}", e);
}
}
}
Ok(())
}
这段代码每收到一个连接,就新开一个线程去处理,算是多线程TCP服务器的入门模板。
运行程序——保存好代码后,在项目目录下执行:
cargo run
编译和运行一气呵成。第一次编译会慢一点,因为要下载依赖并构建,后面就快了。
测试网络服务——最简单的办法是用telnet连上去试试:
telnet 127.0.0.1 8080
随便输入点东西,如果服务器原样返回,说明跑通了。当然,你也可以自己写个客户端程序来测,这里就不展开了。
这只是一个基础的入门示例。Rust的网络编程生态远不止这些——异步编程、TLS/SSL、Unix域套接字,甚至自定义协议解析,都有成熟的库支持。具体怎么用,还得看官方文档或对应库的说明。不过,先把上面这条路走通,后面再深入就会轻松很多。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8