X-Git-Url: http://git.euphorik.ch/?p=crypto_lab1.git;a=blobdiff_plain;f=src%2Fclient.rs;h=14df2d4637b090cb805fba33128b523aae6b9a03;hp=8392460e433169e5b74415a8b932efab6d5cb649;hb=c52e8d69e983c2ae02554841e35670078569b66d;hpb=aee28ef5d1be59c0db218d7130fd1ae2314cc970 diff --git a/src/client.rs b/src/client.rs index 8392460..14df2d4 100644 --- a/src/client.rs +++ b/src/client.rs @@ -1,10 +1,8 @@ use std::io::{ TcpStream, IoResult }; -use command::{ Command, Packet, Error }; -use crypto::Crypto; +use packet::{ Command, Packet }; pub struct Client { socket: TcpStream, - crypto: Crypto, current_timestamp: u64 } @@ -12,24 +10,27 @@ impl Client { pub fn new(address: &str, port: u16) -> IoResult { Ok(Client { socket: try!(TcpStream::connect(address, port)), - current_timestamp: 0, - crypto: Crypto::new() + current_timestamp: 0 }) } - pub fn close(&mut self) { - self.socket.close_read(); - self.socket.close_write(); + pub fn close(&mut self) -> IoResult<()> { + try!(self.socket.close_read()); + try!(self.socket.close_write()); + Ok(()) } pub fn start_tests(&mut self) { - - let command = Packet::newRandomCommand(self.current_timestamp); - self.send(command); - + self.current_timestamp += 1; + let timestamp = self.current_timestamp; + self.send(Packet { timestamp: timestamp, t: Command(Packet::random_packet_data()) }); } - fn send(&mut self, p: Packet) { - p.write(&mut self.socket); + fn send(&mut self, p: Packet) { + println!("Client sends packet: {}", p); + match p.write(&mut self.socket) { + Err(e) => println!("Error on sending: {}", e), + _ => () + } } } \ No newline at end of file