From 42f5ebd7bc67c20834ce346dfaa695508aa9af6d Mon Sep 17 00:00:00 2001 From: Andrew Onuchowski Date: Thu, 17 Nov 2022 12:19:50 +0100 Subject: [PATCH] test example for server that replies request by line --- src/bin/server.rs | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/src/bin/server.rs b/src/bin/server.rs index 178e3ae..7830bce 100644 --- a/src/bin/server.rs +++ b/src/bin/server.rs @@ -1,3 +1,31 @@ +use std::{ + io::{prelude::*, BufReader}, + net::{TcpListener, TcpStream}, +}; +use std::io::Lines; + fn main() { - println! ("server"); + 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(mut stream: TcpStream) { + let mut stream2: TcpStream = stream.try_clone().unwrap(); + let buf_reader: BufReader<&mut TcpStream> = BufReader::new(&mut stream); + let request: Lines> = buf_reader.lines(); + + println!("Request: {:#?}", request); + + for elem in request + { + let s = elem.unwrap(); + println!("{:?}", s); + stream2.write(s.as_bytes()).unwrap(); + stream2.write_all(b"\n").unwrap(); + } }