done_i_think
This commit is contained in:
parent
86c5e0c788
commit
3ab783fbe1
1 changed files with 9 additions and 16 deletions
25
src/main.rs
25
src/main.rs
|
@ -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
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue