diff --git a/src/tcp_client.rs b/src/tcp_client.rs index 89d9a64..10fdba9 100644 --- a/src/tcp_client.rs +++ b/src/tcp_client.rs @@ -87,21 +87,21 @@ pub async fn client_mode(remote_addr: String) { tokio::spawn(async move { while let Ok(bytes) = rx.recv() { - dev_writer.write(&bytes).unwrap(); + dev_writer.write_all(&bytes).unwrap(); } }); tokio::spawn(async move { - let mut buf = vec![0; 2048]; - while let Ok(n) = dev_reader.read(&mut buf) { + let mut buf = Vec::::new(); + while let Ok(n) = dev_reader.read_to_end(&mut buf) { dx.send(buf[..n].to_vec()).unwrap(); } }); tokio::spawn(async move { - let mut buf = vec![0; 2048]; + let mut buf = Vec::::new(); loop { - if let Ok(n) = sock_reader.read(&mut buf).await { + if let Ok(n) = sock_reader.read_to_end(&mut buf).await { //info!("Catch from socket: {:?}", &buf[..n]); let vpn_packet: VpnPacket = bincode::deserialize(&buf[..n]).unwrap(); tx.send(vpn_packet.data).unwrap(); diff --git a/src/tcp_server.rs b/src/tcp_server.rs index 8036bb5..3e227f3 100644 --- a/src/tcp_server.rs +++ b/src/tcp_server.rs @@ -33,13 +33,13 @@ pub async fn server_mode() { tokio::spawn(async move { while let Ok(bytes) = rx.recv() { - dev_writer.write(&bytes).unwrap(); + dev_writer.write_all(&bytes).unwrap(); } }); tokio::spawn(async move { - let mut buf = vec![0; 2048]; - while let Ok(n) = dev_reader.read(&mut buf) { + let mut buf = Vec::::new(); + while let Ok(n) = dev_reader.read_to_end(&mut buf) { dx.send(buf[..n].to_vec()).unwrap(); } }); @@ -64,9 +64,9 @@ pub async fn server_mode() { }); tokio::spawn(async move { - let mut buf = vec![0; 2048]; + let mut buf = Vec::::new(); loop { - if let Ok(n) = sock_reader.read(&mut buf).await { + if let Ok(n) = sock_reader.read_to_end(&mut buf).await { info!("Catched from sock: {:?}", &buf[..n]); let vpn_packet: VpnPacket = bincode::deserialize(&buf[..n]).unwrap(); thread_tx.send(vpn_packet.data).unwrap();