You can test this using the Python client from here.
use std::io::{Read, Write};
use std::net::{TcpListener, TcpStream};
use std::thread;
use std::time::Duration;
fn handle_client(mut stream: TcpStream) {
let mut buffer = [0; 512];
loop {
match stream.read(&mut buffer) {
Ok(0) => {
println!("Client disconnected");
break;
}
Ok(n) => {
println!("Received message: {}", String::from_utf8_lossy(&buffer[..n]));
stream.write_all(&buffer[..n]).expect("Failed to write stream");
}
Err(e) => {
eprintln!("Failed to read from socket: {:?}",e);
break;
}
}
thread::sleep(Duration::from_secs(1));
}
}
fn main() -> std::io::Result<()> {
let listener = TcpListener::bind("0.0.0.0:8000");
println!("Listening on 0.0.0.0:8000");
for stream in listener?.incoming() {
match stream {
Ok(stream) => {
println!("New client connected");
thread::spawn(|| handle_client(stream));
}
Err(e) => {
eprintln!("Failed to accept a client: {:?}",e);
}
}
}
Ok(())
}