From b302923c86258b89a04ed14548c4c2840ffb4591 Mon Sep 17 00:00:00 2001 From: Daniel Heras Quesada Date: Tue, 19 Nov 2024 22:48:58 +0100 Subject: [PATCH] feat: first commit --- .gitignore | 1 + Cargo.lock | 7 +++++++ Cargo.toml | 6 ++++++ src/main.rs | 28 ++++++++++++++++++++++++++++ 4 files changed, 42 insertions(+) create mode 100644 .gitignore create mode 100644 Cargo.lock create mode 100644 Cargo.toml create mode 100644 src/main.rs diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ea8c4bf --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/target diff --git a/Cargo.lock b/Cargo.lock new file mode 100644 index 0000000..e3e2167 --- /dev/null +++ b/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "rust-http-server" +version = "0.1.0" diff --git a/Cargo.toml b/Cargo.toml new file mode 100644 index 0000000..cb0fd0a --- /dev/null +++ b/Cargo.toml @@ -0,0 +1,6 @@ +[package] +name = "rust-http-server" +version = "0.1.0" +edition = "2021" + +[dependencies] diff --git a/src/main.rs b/src/main.rs new file mode 100644 index 0000000..294c380 --- /dev/null +++ b/src/main.rs @@ -0,0 +1,28 @@ +use std::io::prelude::*; +use std::net::{SocketAddr, TcpListener, TcpStream}; + +fn handle_petition(mut stream: TcpStream) -> std::io::Result<()> { + let mut buffer = [0; 1024]; + + let amount = stream.read(&mut buffer)?; + + println!( + "Request: {} of {amount} bytes", + String::from_utf8_lossy(&buffer[..]) + ); + Ok(()) +} + +fn main() { + let addr = SocketAddr::from(([127, 0, 0, 1], 80)); + + let listener = TcpListener::bind(addr).unwrap(); + + println!("Server up and running!"); + + for stream in listener.incoming() { + let _stream = stream.unwrap(); + println!("Connection established!"); + let _result = handle_petition(_stream); + } +}