728x90
아쉽게도 3월에 못끝냈다. 이번주엔 진짜 끝낼듯!
use std::{
fs,
io::{prelude::*, BufReader},
net::{TcpListener, 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);
}
}
fn handle_connection(mut stream: TcpStream) {
let buf_reader = BufReader::new(&mut stream);
let request_line = buf_reader.lines().next().unwrap().unwrap();
let (status_line, filename) = if request_line == "GET / HTTP/1.1" {
("HTTP/1.1 200 OK", "hello.html")
} else {
("HTTP/1.1 404 NOT FOUND", "404.html")
};
let contents = fs::read_to_string(filename).unwrap();
let length = contents.len();
let response = format!(
"{status_line}\r\nContent-Length: {length}\r\n\r\n{contents}"
);
stream.write_all(response.as_bytes()).unwrap();
}
'STUDY > Rust' 카테고리의 다른 글
Rust - 27. 최종 프로젝트 (2) - 러스트 공식문서 끝 (1) | 2024.04.07 |
---|---|
Rust - 25. 고급 기능 (3) 고급 함수와 클로저, 매크로 (0) | 2024.03.31 |
Rust - 24. 고급 기능 (2) 고급 트레이트, 고급 타입 (0) | 2024.03.31 |
Rust - 23. 고급 기능 (1) Unsafe RUST (1) | 2024.03.31 |
Rust - 22. 패턴과 매칭 (0) | 2024.03.26 |