use std::io::{Read, Write};
use std::net::{TcpListener, TcpStream};
use std::thread;
fn handle_client(mut stream: TcpStream) {
let mut buf = [0u8; 1024];
loop {
match stream.read(&mut buf) {
Ok(0) => break,
Ok(n) => {
if stream.write_all(&buf[..n]).is_err() {
break;
}
}
Err(_) => break,
}
}
}
fn main() -> std::io::Result<()> {
let listener = TcpListener::bind("127.0.0.1:8080")?;
println!("Standard Echo server listening on 127.0.0.1:8080");
for stream in listener.incoming() {
if let Ok(stream) = stream {
thread::spawn(|| handle_client(stream));
}
}
Ok(())
}