在Rust中实现Linux网络编程,你可以使用标准库中的std::net
模块
- 创建一个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), } } }
- 创建一个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协议、实现更复杂的数据处理逻辑等。