diff --git a/src/main.rs b/src/main.rs index a75e8685c53e1321976f9b7b9678f477bca2a9e1..44a5cceb67566794932d459e7b881bd8586f21f4 100644 --- a/src/main.rs +++ b/src/main.rs @@ -94,19 +94,20 @@ fn main() { let server = thread::spawn(|| { let listener = TcpListener::bind("127.0.0.1:8080").unwrap(); let mut stream; - let mut message = [0u8; 13]; + let mut message = [0u8; 128]; match listener.accept() { Ok((socket, addr)) => { println!("server: new client: {:?}", addr); stream=socket; thread::sleep(time::Duration::new(1,0)); - //loop { + loop { match stream.read(&mut message) { Ok(msg) => {println!("server got: {:?}, local message: {}", msg, str::from_utf8(&message).unwrap()); - //stream.write(String::from("yo").as_bytes()).unwrap(); + let written_size = stream.write_all("Server says hi.\n".as_bytes()); + println!("server wrote_all {:?} to stream.", written_size); }, Err(e) => {println!("Some error in readToString in swerver: {}", e)}, } - //} + } }, Err(e) => println!("couldn't get client: {:?}", e), } @@ -121,11 +122,25 @@ fn main() { let written_size = stream.write_all("Main says hi.".as_bytes()); println!("main wrote_all {:?} to stream.", written_size); - //let mut message = String::with_capacity(127); - /*match stream.read_to_string(&mut message) { - Ok(m) => {println!("main got: {:?}", m)}, - Err(e) => {println!("Main could not read to string: {:?}", e);}, - };*/ + let mut stream_copy = stream.try_clone().unwrap(); + let mut c: u8 = 0; + for b in stream.bytes() { + match b { + Ok(byte) => {print!("{}", byte as char); + if c == 14 { + c = 0; + let _ = stream_copy.write_all("Hi Server, Me Main, got your message!".as_bytes()); + } + else { + c += 1; + } + + }, + Err(_) => {}, + } + } + + println!("Main wating for join."); mapper.join().unwrap();