From 5edbd8586fe546b20f2308da725b2f89ea6e1887 Mon Sep 17 00:00:00 2001 From: phoenix Date: Sat, 5 Apr 2025 17:46:02 -0400 Subject: [PATCH] Added service code --- src/main.rs | 39 +++++++++++++++++++++++++++++++++++++-- 1 file changed, 37 insertions(+), 2 deletions(-) diff --git a/src/main.rs b/src/main.rs index e7a11a9..ddbab38 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,3 +1,38 @@ -fn main() { - println!("Hello, world!"); +use std::error::Error; +use tokio::io::AsyncReadExt; +use tokio::net::{TcpListener, TcpStream}; +use tokio::spawn; + +#[tokio::main] +async fn main() -> Result<(), Box> { + let listener = TcpListener::bind("127.0.0.1:8080").await?; + println!("API calling service listening on 127.0.0.1:8080"); + + loop { + let (stream, addr) = listener.accept().await?; + println!("Accepted connection from: {}", addr); + + spawn(async move { + if let Err(e) = handle_connection(stream).await { + eprintln!("Error handling connection from {}: {}", addr, e); + } + }); + } +} + +async fn handle_connection(mut stream: TcpStream) -> Result<(), Box> { + let mut buffer = [0; 1024]; + + loop { + let n = stream.read(&mut buffer).await?; + + if n == 0 { + break; // Connection closed + } + + let request_data = String::from_utf8_lossy(&buffer[..n]).trim().to_string(); + println!("Received request: {}", request_data); + } + + Ok(()) }