done_i_think

This commit is contained in:
Ahmet Kaan GÜMÜŞ 2023-09-13 15:03:55 +03:00
parent 86c5e0c788
commit 3ab783fbe1

View file

@ -1,12 +1,13 @@
use std::net::{TcpListener, TcpStream}; use std::net::{TcpListener, TcpStream};
use std::io::{Read, Write, self}; use std::io::{Read, Write, self};
use std::{env, thread}; use std::env;
use std::str::from_utf8; use std::str::from_utf8;
enum EnvArg enum EnvArg
{ {
Client, Client,
Server, Server,
Fail,
} }
impl EnvArg impl EnvArg
{ {
@ -17,11 +18,10 @@ impl EnvArg
Ok(mut socket) => Ok(mut socket) =>
{ {
println!("Connected"); println!("Connected");
let socket_clone = socket.try_clone().expect("Cloning Failed");
thread::spawn(move || {Self::c_send(&socket_clone)});
let stay = true; let stay = true;
while stay while stay
{ {
socket.write(take_string().as_bytes()).unwrap();
let mut data = [0 as u8; 1024]; let mut data = [0 as u8; 1024];
match socket.read(&mut data) match socket.read(&mut data)
{ {
@ -48,19 +48,11 @@ impl EnvArg
} }
return true; return true;
} }
fn c_send(mut socket:&TcpStream)
{
let stay = true;
while stay
{
socket.write(take_string().as_bytes()).unwrap();
}
}
fn s_connect() -> bool fn s_connect() -> bool
{ {
let socket = TcpListener::bind("localhost:2121"); let socket = TcpListener::bind("localhost:2121");
for stream in socket.expect("Panic").incoming() for stream in socket.expect("Can't Check Connections").incoming()
{ {
match stream match stream
{ {
@ -123,7 +115,7 @@ fn take_arg() -> EnvArg
}, },
_ => println!("Only one argument is allowed"), _ => println!("Only one argument is allowed"),
} }
panic!(); return EnvArg::Fail;
} }
fn take_string() -> String fn take_string() -> String
@ -138,7 +130,7 @@ fn client()
println!("Client"); println!("Client");
if EnvArg::c_connect() != true if EnvArg::c_connect() != true
{ {
panic!(); println!("Client Exit");
} }
} }
fn server() fn server()
@ -146,7 +138,7 @@ fn server()
println!("Server"); println!("Server");
if EnvArg::s_connect() != true if EnvArg::s_connect() != true
{ {
panic!(); println!("Server Exit");
} }
} }
@ -156,6 +148,7 @@ fn main()
match take_arg() match take_arg()
{ {
EnvArg::Client => client(), EnvArg::Client => client(),
EnvArg::Server => server() EnvArg::Server => server(),
EnvArg::Fail => return
} }
} }