use tipsy::{Endpoint, ServerId};
use tokio::io::{AsyncReadExt, AsyncWriteExt};
#[tokio::main]
async fn main() {
let path = std::env::args()
.nth(1)
.expect("Run it with server path to connect as argument");
let mut client = Endpoint::connect(ServerId::new(path))
.await
.expect("Failed to connect client.");
loop {
let mut buf = [0u8; 4];
println!("SEND: PING");
client
.write_all(b"ping")
.await
.expect("Unable to write message to client");
client
.read_exact(&mut buf[..])
.await
.expect("Unable to read buffer");
if let Ok("pong") = std::str::from_utf8(&buf[..]) {
println!("RECEIVED: PONG");
} else {
break;
}
tokio::time::sleep(std::time::Duration::from_secs(2)).await;
}
}