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 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}