linux

Rust与Linux网络编程如何实现

小樊
81
2024-11-19 18:07:52
栏目: 编程语言

在Rust中实现Linux网络编程,你可以使用标准库中的std::net模块

  1. 创建一个TCP服务器:
use std::io::{Read, Write};
use std::net::{TcpListener, TcpStream};
use std::thread;

fn handle_client(mut stream: TcpStream) {
    let mut buffer = [0; 1024];
    match stream.read(&mut buffer) {
        Ok(_) => {
            println!("接收到客户端的数据: {}", String::from_utf8_lossy(&buffer[..]));
            stream.write(b"Hello from server!").unwrap();
        }
        Err(e) => println!("无法读取客户端数据: {}", e),
    }
}

fn main() {
    let listener = TcpListener::bind("127.0.0.1:7878").unwrap();
    println!("服务器已启动,监听端口7878");

    for stream in listener.incoming() {
        match stream {
            Ok(stream) => {
                thread::spawn(move || {
                    handle_client(stream);
                });
            }
            Err(e) => println!("无法接受客户端连接: {}", e),
        }
    }
}
  1. 创建一个TCP客户端:
use std::io::{Read, Write};
use std::net::TcpStream;

fn main() {
    let mut stream = TcpStream::connect("127.0.0.1:7878").unwrap();
    println!("已连接到服务器");

    stream.write(b"Hello from client!").unwrap();
    let mut buffer = [0; 1024];
    match stream.read(&mut buffer) {
        Ok(_) => {
            println!("接收到服务器的数据: {}", String::from_utf8_lossy(&buffer[..]));
        }
        Err(e) => println!("无法读取服务器数据: {}", e),
    }
}

这些示例展示了如何使用Rust的std::net模块创建一个简单的TCP服务器和客户端。你可以根据需要修改这些示例以满足你的需求,例如使用UDP协议、实现更复杂的数据处理逻辑等。

0
看了该问题的人还看了