diff options
Diffstat (limited to 'hello_server/src/bin/main.rs')
-rw-r--r-- | hello_server/src/bin/main.rs | 46 |
1 files changed, 0 insertions, 46 deletions
diff --git a/hello_server/src/bin/main.rs b/hello_server/src/bin/main.rs deleted file mode 100644 index bcf1e46..0000000 --- a/hello_server/src/bin/main.rs +++ /dev/null @@ -1,46 +0,0 @@ -use hello_server::ThreadPool; -use std::thread; -use std::time::Duration; -use std::io::prelude::*; -use std::fs; -use std::net::TcpStream; -use std::net::TcpListener; - -fn main() { - let listener = TcpListener::bind("127.0.0.1:7878").unwrap(); - let pool = ThreadPool::new(4).unwrap(); - - for stream in listener.incoming().take(2) { - let stream = stream.unwrap(); - - pool.execute(|| { - handle_connection(stream); - }); - } - - println!("shutting down..."); - -} - -fn handle_connection(mut stream: TcpStream) { - let mut buffer = [0; 512]; - stream.read(&mut buffer).unwrap(); - let get = b"GET / HTTP/1.1\r\n"; - let sleep = b"GET /sleep HTTP/1.1\r\n"; - - let (status_line, filename) = if buffer.starts_with(get) { - ("HTTP/1.1 200 OK\r\n\r\n", "hello.html") - } - else if buffer.starts_with(sleep) { - thread::sleep(Duration::from_secs(5)); - ("HTTP/1.1 200 OK\r\n\r\n", "hello.html") - } - else { - ("HTTP/1.1 404 NOT FOUND\r\n\r\n", "404.html") - }; - - let contents = fs::read_to_string(filename).unwrap(); - let response = format!("{}{}", status_line, contents); - stream.write(response.as_bytes()).unwrap(); - stream.flush().unwrap(); -} |