From 1d5a1aa2b121e31b6c04c702310d0b019440c59e Mon Sep 17 00:00:00 2001 From: Caleb Webber Date: Fri, 1 Mar 2024 19:39:18 -0500 Subject: [PATCH] spawn threads per listener and listen on all addresses --- src/bin/smoke.rs | 30 +++++++++++++++++------------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/src/bin/smoke.rs b/src/bin/smoke.rs index 9844813..ad46615 100644 --- a/src/bin/smoke.rs +++ b/src/bin/smoke.rs @@ -2,25 +2,29 @@ use std::{io::{Read, Write}, net::TcpListener}; const PORT: usize = 10000; const BUFF_SIZE: usize = 1; + fn main() -> std::io::Result<()> { - let listener = TcpListener::bind(format!("127.0.0.1:{PORT}"))?; + let listener = TcpListener::bind(format!("0.0.0.0:{PORT}"))?; for stream in listener.incoming() { - match stream { - Ok(mut stream) => { - loop { - let mut buf: [u8; BUFF_SIZE] = [0; BUFF_SIZE]; + std::thread::spawn(move || { + match stream { + Ok(mut stream) => { + loop { + let mut buf: [u8; BUFF_SIZE] = [0; BUFF_SIZE]; - if let Ok(_) = stream.read_exact(&mut buf) { - stream.write(&buf)?; - } else { - break; + if let Ok(_) = stream.read_exact(&mut buf) { + println!("{:?}", &buf); + let _ = stream.write(&buf); + } else { + break; + } } - } - }, - Err(e) => panic!("{:?}", e) - } + }, + Err(e) => panic!("{:?}", e) + } + }); } Ok(())