simple/
simple.rs

1extern crate reliudp;
2
3use std::sync::Arc;
4
5fn main() -> Result<(), Box<dyn (::std::error::Error)>> {
6    let really_big_message: Vec<u8> = (0..65536).map(|v| (v % 256) as u8).collect();
7    let really_big_message: Arc<[u8]> = Arc::from(really_big_message.into_boxed_slice());
8
9    let mut server = reliudp::RUdpServer::new("0.0.0.0:50000").expect("Failed to create server");
10
11    let mut client = reliudp::RUdpSocket::connect("192.168.1.89:50000").expect("Failed to create client");
12
13    let mut sent_message: bool = false;
14
15    println!("Created server & client. Starting main loop");
16    for _frame in 0..300 {
17        server.next_tick()?;
18        client.next_tick()?;
19
20        for client_event in client.drain_events() {
21            println!("Client: Incoming event {:?}", client_event);
22        }
23
24        for server_event in server.drain_events() {
25            println!("Server: Incoming event {:?}", server_event);
26        }
27        
28        if !sent_message {
29            client.send_data(Arc::clone(&really_big_message), reliudp::MessageType::KeyMessage);
30            sent_message = true;
31        }
32
33        ::std::thread::sleep(::std::time::Duration::from_micros(16666));
34    }
35
36    {
37        // drop the server;
38        let _s = server;
39    }
40    
41    for _frame in 0..10 {
42        client.next_tick()?;
43
44        for client_event in client.drain_events() {
45            println!("Client: Incoming event {:?}", client_event);
46        }
47        ::std::thread::sleep(::std::time::Duration::from_micros(16666));
48    }
49
50    println!("Done.");
51    Ok(())
52}