diff --git a/src/main.rs b/src/main.rs index fe5e69dfc309c643faea8e2eec74ea26d56d130b..a75e8685c53e1321976f9b7b9678f477bca2a9e1 100644 --- a/src/main.rs +++ b/src/main.rs @@ -2,6 +2,12 @@ use std::thread; use std::sync::mpsc; use std::time; +// stuff for tcp +use std::io::prelude::*; +use std::net::TcpStream; +use std::net::TcpListener; + +use std::str; // should the map matrix be two dim array of const size, vecs of dynamic, or what? @@ -72,7 +78,7 @@ fn main() { // update map - if pos.0 == 1000000 { + if pos.0 == 2000 { println!("mapper done."); request_location_tx.send(false).unwrap(); break; @@ -84,9 +90,49 @@ fn main() { }); + + let server = thread::spawn(|| { + let listener = TcpListener::bind("127.0.0.1:8080").unwrap(); + let mut stream; + let mut message = [0u8; 13]; + match listener.accept() { + Ok((socket, addr)) => { + println!("server: new client: {:?}", addr); stream=socket; + thread::sleep(time::Duration::new(1,0)); + //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(); + }, + Err(e) => {println!("Some error in readToString in swerver: {}", e)}, + } + //} + }, + Err(e) => println!("couldn't get client: {:?}", e), + } + }); + + thread::sleep(time::Duration::new(3,0)); + let mut stream = TcpStream::connect("127.0.0.1:8080").unwrap(); + //thread::sleep(time::Duration::new(0,900*1000000)); + //let written_size = stream.write(&['y' as u8,'o' as u8, '!' as u8]); + //println!("main wrote {:?} bytes to stream.", written_size); + + 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);}, + };*/ + println!("Main wating for join."); mapper.join().unwrap(); tracker.join().unwrap(); + println!("Main wating for server join."); + //drop(stream); + server.join().unwrap(); println!("end of main"); // pathfinder, takes a map and returns a list of nodes to aim for when driving