wrym 0.1.0

Cross-platform, lightweight networking
Documentation
use std::{process::exit, thread::sleep, time::Duration};

use bincode::{deserialize, serialize};
use wrym::{
    client::{Client, ClientEvent},
    transport::client::Transport,
};

const SERVER_ADDR: &str = "127.0.0.1:8080";
const CLIENT_ADDR: &str = "127.0.0.1:0";

fn main() {
    let transport = Transport::new(SERVER_ADDR);
    let mut client = Client::new(transport, SERVER_ADDR);

    println!("Client is running on {}", CLIENT_ADDR);

    loop {
        client.poll();

        while let Some(event) = client.recv_event() {
            match event {
                ClientEvent::Connected => {
                    println!("Server {} acknowledged our connection!", SERVER_ADDR);

                    client.send(&serialize("Hello").unwrap());
                }
                ClientEvent::Disconnected => {
                    println!("Lost connection to server {}", SERVER_ADDR);

                    exit(0);
                }
                ClientEvent::MessageReceived(bytes) => {
                    println!(
                        "Message received from server: {:?}",
                        deserialize::<String>(&bytes).unwrap()
                    );
                }
            }
        }

        sleep(Duration::from_millis(100));
    }
}