| // ANCHOR: here |
| use std::fs; |
| // --snip-- |
| |
| // ANCHOR_END: here |
| use std::io::prelude::*; |
| use std::net::TcpListener; |
| use std::net::TcpStream; |
| |
| fn main() { |
| let listener = TcpListener::bind("127.0.0.1:7878").unwrap(); |
| |
| for stream in listener.incoming() { |
| let stream = stream.unwrap(); |
| |
| handle_connection(stream); |
| } |
| } |
| |
| // ANCHOR: here |
| fn handle_connection(mut stream: TcpStream) { |
| let mut buffer = [0; 512]; |
| stream.read(&mut buffer).unwrap(); |
| |
| let contents = fs::read_to_string("hello.html").unwrap(); |
| |
| let response = format!("HTTP/1.1 200 OK\r\n\r\n{}", contents); |
| |
| stream.write(response.as_bytes()).unwrap(); |
| stream.flush().unwrap(); |
| } |
| // ANCHOR_END: here |