Skip to content

Instantly share code, notes, and snippets.

@Siilwyn
Last active September 5, 2017 19:30
Show Gist options
  • Save Siilwyn/046e37945b4aa6ce0bff784168bd5633 to your computer and use it in GitHub Desktop.
Save Siilwyn/046e37945b4aa6ce0bff784168bd5633 to your computer and use it in GitHub Desktop.
Rust simple HTTP server with no external crates
use std::io::{Read, Write, BufReader, BufRead};
use std::net::{TcpListener, TcpStream};
fn main() {
loop {
let listener = TcpListener::bind("localhost:5432").unwrap();
let stream = listener.accept().unwrap().0;
handle_request(stream);
}
}
fn send_response(mut stream: TcpStream) {
let response = "HTTP/1.1 200 OK\n\n<html><body>Hello, World!</body></html>";
stream.write_all(response.as_bytes()).unwrap();
}
fn handle_request(stream: TcpStream) {
let mut reader = BufReader::new(stream);
// Close connection once data is sent
reader.by_ref().lines().find(|line| line.as_ref().unwrap() == &"");
send_response(reader.into_inner());
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment