[−][src]Crate reliudp
Reliudp: A custom Reliable UDP protocol for Rust
Examples
Server
extern crate reliudp; use std::sync::Arc; fn generate_really_big_message(i: u8) -> Arc<[u8]> { let really_big_message: Vec<u8> = (0..2000).map(|_v| i).collect(); let really_big_message: Arc<[u8]> = Arc::from(really_big_message.into_boxed_slice()); really_big_message } fn main() -> Result<(), Box<::std::error::Error>> { let mut server = reliudp::RUdpServer::new("0.0.0.0:61244").expect("Failed to create server"); let mut n = 0; for i in 0u64.. { server.next_tick()?; for server_event in server.drain_events() { println!("Server: Incoming event {:?}", server_event); } if i % 300 == 0 { let big_message = generate_really_big_message(n); println!("Sending (n={:?}) {:?} bytes to all {:?} remotes", n, big_message.as_ref().len(), server.remotes_len()); if n % 2 == 0 { server.send_data(&big_message, reliudp::MessageType::KeyMessage); } else { server.send_data(&big_message, reliudp::MessageType::Forgettable); } n += 1; } ::std::thread::sleep(::std::time::Duration::from_millis(5)); } Ok(()) }
Client
extern crate reliudp; use reliudp::SocketEvent; fn main() -> Result<(), Box<::std::error::Error>> { let mut client = reliudp::RUdpSocket::connect("91.121.135.70:61244").expect("Failed to create client"); for i in 0.. { client.next_tick()?; for client_event in client.drain_events() { if let SocketEvent::Data(d) = client_event { println!("Client: Incoming {:?} bytes (n={:?}) at frame {:?}", d.len(), d[0], i); } else { println!("Client: Incoming event {:?} at frame {:?}", client_event, i); } } ::std::thread::sleep(::std::time::Duration::from_millis(5)); } Ok(()) }
Structs
RUdpServer | A Server that holds multiple remotes |
RUdpSocket | A RUdp Client Socket |
Enums
MessageType | Represents the type of message you are able to send (key, forgettable, ...) |
SocketEvent | Represents an event of the Socket. |
SocketStatus | Represents the internal connection status of the Socket |