]>
git.proxmox.com Git - rustc.git/blob - src/doc/book/listings/ch20-web-server/listing-20-07/src/main.rs
2 use std
::io
::prelude
::*;
3 use std
::net
::TcpListener
;
4 use std
::net
::TcpStream
;
7 let listener
= TcpListener
::bind("127.0.0.1:7878").unwrap();
9 for stream
in listener
.incoming() {
10 let stream
= stream
.unwrap();
12 handle_connection(stream
);
16 fn handle_connection(mut stream
: TcpStream
) {
17 let mut buffer
= [0; 1024];
18 stream
.read(&mut buffer
).unwrap();
20 let get
= b
"GET / HTTP/1.1\r\n";
22 if buffer
.starts_with(get
) {
23 let contents
= fs
::read_to_string("hello.html").unwrap();
25 let response
= format
!(
26 "HTTP/1.1 200 OK\r\nContent-Length: {}\r\n\r\n{}",
31 stream
.write(response
.as_bytes()).unwrap();
32 stream
.flush().unwrap();
36 let status_line
= "HTTP/1.1 404 NOT FOUND";
37 let contents
= fs
::read_to_string("404.html").unwrap();
39 let response
= format
!(
40 "{}\r\nContent-Length: {}\r\n\r\n{}",
46 stream
.write(response
.as_bytes()).unwrap();
47 stream
.flush().unwrap();