From f9eeea892ebceb8a29026fdd75fd1ae0399f532f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ahmet=20Kaan=20G=C3=9CM=C3=9C=C5=9E?= <96421894+Tahinli@users.noreply.github.com> Date: Tue, 12 Sep 2023 03:06:32 +0300 Subject: [PATCH] tpc --- src/main.rs | 80 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) diff --git a/src/main.rs b/src/main.rs index 83c2e1d..7d3568c 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,12 +1,84 @@ use std::net::{TcpListener, TcpStream}; use std::io::{Read, Write}; use std::env; +use std::str::from_utf8; enum EnvArg { Client, Server, } +impl EnvArg + { + fn c_connect() -> bool + { + match TcpStream::connect("localhost:2121") + { + Ok(mut socket) => + { + println!("Connected"); + socket.write(b"Hello").unwrap(); + let mut data = [0 as u8; 1024]; + match socket.read(&mut data) + { + Ok(_) => + { + println!("{}", from_utf8(&data).unwrap()); + } + Err(e) => + { + println!("Failed to receive data: {}", e); + return false; + } + } + } + Err(e) => + { + println!("Failed to connect: {}", e); + return false; + } + } + return true; + } + + fn s_connect() -> bool + { + let socket = TcpListener::bind("localhost:2121"); + for stream in socket.expect("Panic").incoming() + { + match stream + { + Ok(mut stream) => + { + let mut data = [0 as u8; 1024]; + match stream.read(&mut data) + { + Ok(a) => + { + if a == 0 + { + println!("Connection Closed"); + return false; + } + println!("{}", stream.write(&data).unwrap()); + } + Err(e) => + { + println!("Failed to Read: {}", e); + return false; + } + } + } + Err(e) => + { + println!("Something Happened: {}", e); + } + } + } + + return true; + } + } fn take_arg() -> EnvArg { @@ -37,10 +109,18 @@ fn take_arg() -> EnvArg fn client() { println!("Client"); + if EnvArg::c_connect() != true + { + panic!(); + } } fn server() { println!("Server"); + if EnvArg::s_connect() != true + { + panic!(); + } } fn main()