商城首页欢迎来到中国正版软件门户

您的位置: 首页 > 文章列表 > 编程开发 > CentOS上Rust如何进行网络编程

CentOS上Rust如何进行网络编程

  发布于2026-07-24 阅读(0)

扫一扫,手机访问

在CentOS上搞Rust网络编程,这事儿其实比想象中要直接得多。先别急着写代码,把环境搭好才是正经事。下面咱们一步步来,从零开始,把整个流程跑通。

CentOS上Rust如何进行网络编程

  1. 装好Rust——这是所有工作的前提。用下面这条命令就能搞定,它会自动下载安装脚本并执行:

    curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

    装完之后,记得把Rust加到PATH里,否则命令行找不到rustccargo

    source $HOME/.cargo/env
  2. 新建一个Rust项目——用cargo new命令,名字随你取,比如叫rust_network_program

    cargo new rust_network_program
    cd rust_network_program
  3. 添加依赖——网络编程免不了要用现成的库。如果打算用异步框架,tokiohyper是经典组合。打开Cargo.toml,在[dependencies]下面加上:

    [dependencies]
    tokio = { version = "1", features = ["full"] }
    hyper = "0.14"

    当然,如果你只是做个简单的TCP实验,标准库就够了,这一步可以跳过。

  4. 写网络代码——打开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服务器的入门模板。

  5. 运行程序——保存好代码后,在项目目录下执行:

    cargo run

    编译和运行一气呵成。第一次编译会慢一点,因为要下载依赖并构建,后面就快了。

  6. 测试网络服务——最简单的办法是用telnet连上去试试:

    telnet 127.0.0.1 8080

    随便输入点东西,如果服务器原样返回,说明跑通了。当然,你也可以自己写个客户端程序来测,这里就不展开了。

这只是一个基础的入门示例。Rust的网络编程生态远不止这些——异步编程、TLS/SSL、Unix域套接字,甚至自定义协议解析,都有成熟的库支持。具体怎么用,还得看官方文档或对应库的说明。不过,先把上面这条路走通,后面再深入就会轻松很多。

本文转载于:https://www.yisu.com/ask/44541993.html 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注