use std::io::prelude::*;
use std::net::TcpListener;
use std::net::TcpStream;
fn main() {
let listener = TcpListener::bind("127.0.0.1:8080").unwrap();
println!("Server listening on port 8080");
for stream in listener.incoming() {
let stream = stream.unwrap();
handle_connection(stream);
}
}
fn handle_connection(mut stream: TcpStream) {
let mut buffer = [0; 1024];
stream.read(&mut buffer).unwrap();
let response = "HTTP/1.1 200 OK\r\n\r\n";
stream.write(response.as_bytes()).unwrap();
stream.flush().unwrap();
}
Rust
복사
이 코드는 std 라이브러리의 TcpListener와 TcpStream 모듈을 사용하여 로컬 호스트의 8080 포트에서 수신 대기하면서 들어오는 요청을 수락하고, 해당 요청에 대한 HTTP 응답을 전송합니다.
main 함수에서는 TcpListener::bind 메소드를 사용하여 로컬 호스트의 8080 포트에 대한 수신 대기자를 만들고, incoming 메소드를 사용하여 들어오는 연결 요청에 대한 반복자를 생성합니다. 이 반복자는 계속해서 새로운 연결 요청을 받을 수 있으며, handle_connection 함수를 사용하여 각각의 연결 요청에 대한 처리를 수행합니다.
handle_connection 함수에서는 TcpStream::read 메소드를 사용하여 요청을 읽어들이고, 간단한 "HTTP/1.1 200 OK" 응답을 생성하여 TcpStream::write 메소드를 사용하여 응답을 전송합니다. 마지막으로, TcpStream::flush 메소드를 사용하여 버퍼를 비워줍니다.
위 코드는 매우 간단한 예제로, 실제로는 좀 더 복잡한 로직과 기능이 필요할 수 있습니다. 더 자세한 내용은 Rust 공식 문서와 Rust 커뮤니티에서 제공하는 자료들을 참고하시기 바랍니다.
컬렉션 찾아보기
시리즈