tpc
This commit is contained in:
parent
ee45c433a8
commit
f9eeea892e
1 changed files with 80 additions and 0 deletions
80
src/main.rs
80
src/main.rs
|
@ -1,12 +1,84 @@
|
||||||
use std::net::{TcpListener, TcpStream};
|
use std::net::{TcpListener, TcpStream};
|
||||||
use std::io::{Read, Write};
|
use std::io::{Read, Write};
|
||||||
use std::env;
|
use std::env;
|
||||||
|
use std::str::from_utf8;
|
||||||
|
|
||||||
enum EnvArg
|
enum EnvArg
|
||||||
{
|
{
|
||||||
Client,
|
Client,
|
||||||
Server,
|
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
|
fn take_arg() -> EnvArg
|
||||||
{
|
{
|
||||||
|
@ -37,10 +109,18 @@ fn take_arg() -> EnvArg
|
||||||
fn client()
|
fn client()
|
||||||
{
|
{
|
||||||
println!("Client");
|
println!("Client");
|
||||||
|
if EnvArg::c_connect() != true
|
||||||
|
{
|
||||||
|
panic!();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
fn server()
|
fn server()
|
||||||
{
|
{
|
||||||
println!("Server");
|
println!("Server");
|
||||||
|
if EnvArg::s_connect() != true
|
||||||
|
{
|
||||||
|
panic!();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn main()
|
fn main()
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue