Search

간단한 TCP 서버 만들기

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 라이브러리의 TcpListenerTcpStream 모듈을 사용하여 로컬 호스트의 8080 포트에서 수신 대기하면서 들어오는 요청을 수락하고, 해당 요청에 대한 HTTP 응답을 전송합니다.
main 함수에서는 TcpListener::bind 메소드를 사용하여 로컬 호스트의 8080 포트에 대한 수신 대기자를 만들고, incoming 메소드를 사용하여 들어오는 연결 요청에 대한 반복자를 생성합니다. 이 반복자는 계속해서 새로운 연결 요청을 받을 수 있으며, handle_connection 함수를 사용하여 각각의 연결 요청에 대한 처리를 수행합니다.
handle_connection 함수에서는 TcpStream::read 메소드를 사용하여 요청을 읽어들이고, 간단한 "HTTP/1.1 200 OK" 응답을 생성하여 TcpStream::write 메소드를 사용하여 응답을 전송합니다. 마지막으로, TcpStream::flush 메소드를 사용하여 버퍼를 비워줍니다.
위 코드는 매우 간단한 예제로, 실제로는 좀 더 복잡한 로직과 기능이 필요할 수 있습니다. 더 자세한 내용은 Rust 공식 문서와 Rust 커뮤니티에서 제공하는 자료들을 참고하시기 바랍니다.

컬렉션 찾아보기

시리즈