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