From 29a270a01d30e6cfc09530231f72ceb632ff0fb9 Mon Sep 17 00:00:00 2001 From: Florian Geiger Date: Thu, 17 Nov 2022 12:09:55 +0100 Subject: [PATCH 1/4] =?UTF-8?q?Hinzuf=C3=BCgen=20"Beenden=20mit=20Strg=20+?= =?UTF-8?q?=20D"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/bin/client.rs | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/bin/client.rs b/src/bin/client.rs index b7ce971..aa40f9c 100644 --- a/src/bin/client.rs +++ b/src/bin/client.rs @@ -10,14 +10,17 @@ fn main() { loop { let mut buffer = String::new(); - match std::io::stdin().read_line(&mut buffer){ - Ok(_n) => { + match std::io::stdin().read_line(&mut buffer) { + Ok(n) => { + if n == 0 { + break; + } println!("{}", buffer); } - Err(_error) =>{ + Err(_error) => { println!("Fehlerhafte Eingabe!"); break; } } } -} // the stream is closed here \ No newline at end of file +} // the stream is closed here From 42f5ebd7bc67c20834ce346dfaa695508aa9af6d Mon Sep 17 00:00:00 2001 From: Andrew Onuchowski Date: Thu, 17 Nov 2022 12:19:50 +0100 Subject: [PATCH 2/4] 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(); + } } From 2546dd6ba1835f6455c7f507a54fb01ab5da7eec Mon Sep 17 00:00:00 2001 From: grafju78439 Date: Thu, 17 Nov 2022 12:20:24 +0100 Subject: [PATCH 3/4] input error behandlung --- src/bin/client.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/bin/client.rs b/src/bin/client.rs index aa40f9c..1f3aba8 100644 --- a/src/bin/client.rs +++ b/src/bin/client.rs @@ -17,8 +17,8 @@ fn main() { } println!("{}", buffer); } - Err(_error) => { - println!("Fehlerhafte Eingabe!"); + Err(error) => { + println!("error: {error}"); break; } } From ac174d0f39a9084d079cea41b14748fc58c40823 Mon Sep 17 00:00:00 2001 From: Andrew Onuchowski Date: Thu, 17 Nov 2022 12:22:30 +0100 Subject: [PATCH 4/4] added JetBrains template to .gitignore --- .gitignore | 74 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) diff --git a/.gitignore b/.gitignore index 436d96e..8dac6de 100644 --- a/.gitignore +++ b/.gitignore @@ -59,3 +59,77 @@ Icon Network Trash Folder Temporary Items .apdisk + +### JetBrains template +# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider +# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839 + +# User-specific stuff +.idea/**/workspace.xml +.idea/**/tasks.xml +.idea/**/usage.statistics.xml +.idea/**/dictionaries +.idea/**/shelf + +# Generated files +.idea/**/contentModel.xml + +# Sensitive or high-churn files +.idea/**/dataSources/ +.idea/**/dataSources.ids +.idea/**/dataSources.local.xml +.idea/**/sqlDataSources.xml +.idea/**/dynamic.xml +.idea/**/uiDesigner.xml +.idea/**/dbnavigator.xml + +# Gradle +.idea/**/gradle.xml +.idea/**/libraries + +# Gradle and Maven with auto-import +# When using Gradle or Maven with auto-import, you should exclude module files, +# since they will be recreated, and may cause churn. Uncomment if using +# auto-import. +# .idea/artifacts +# .idea/compiler.xml +# .idea/jarRepositories.xml +# .idea/modules.xml +# .idea/*.iml +# .idea/modules +# *.iml +# *.ipr + +# CMake +cmake-build-*/ + +# Mongo Explorer plugin +.idea/**/mongoSettings.xml + +# File-based project format +*.iws + +# IntelliJ +out/ + +# mpeltonen/sbt-idea plugin +.idea_modules/ + +# JIRA plugin +atlassian-ide-plugin.xml + +# Cursive Clojure plugin +.idea/replstate.xml + +# Crashlytics plugin (for Android Studio and IntelliJ) +com_crashlytics_export_strings.xml +crashlytics.properties +crashlytics-build.properties +fabric.properties + +# Editor-based Rest Client +.idea/httpRequests + +# Android studio 3.1+ serialized cache file +.idea/caches/build_file_checksums.ser +