From 6a617ef8de30fb00f0a36a3fffea2c39bc3fa78c Mon Sep 17 00:00:00 2001 From: mo khan Date: Wed, 28 May 2025 22:08:46 -0600 Subject: feat: start a tcp server --- Cargo.lock | 7 +++++++ src/main.rs | 23 ++++++++++++++++++++++- 2 files changed, 29 insertions(+), 1 deletion(-) create mode 100644 Cargo.lock diff --git a/Cargo.lock b/Cargo.lock new file mode 100644 index 0000000..ba61b5b --- /dev/null +++ b/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "sts" +version = "0.1.0" diff --git a/src/main.rs b/src/main.rs index e7a11a9..c42cc8e 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,3 +1,24 @@ +use std::io::BufReader; +use std::io::prelude::*; +use std::net::TcpListener; +use std::net::TcpStream; + fn main() { - println!("Hello, world!"); + 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(stream: TcpStream) { + let buf_reader = BufReader::new(&stream); + let http_request: Vec<_> = buf_reader + .lines() + .map(|result| result.unwrap()) + .take_while(|line| !line.is_empty()) + .collect(); + + println!("Request: {http_request:#?}"); } -- cgit v1.2.3