basic_server/
basic_server.rs1use std::net::{IpAddr, Ipv4Addr, SocketAddr};
14use std::time::Duration;
15
16use irtt_server::{Server, ServerConfig};
17
18#[tokio::main(flavor = "current_thread")]
19async fn main() {
20 let bind_addr = SocketAddr::new(IpAddr::V4(Ipv4Addr::LOCALHOST), 0);
21 let config = ServerConfig::default();
22
23 let mut server = match Server::bind(bind_addr, config).await {
24 Ok(server) => server,
25 Err(err) => {
26 eprintln!("failed to bind server: {err}");
27 return;
28 }
29 };
30
31 println!(
32 "listening on {}",
33 server
34 .local_addr()
35 .expect("bound socket has a local address")
36 );
37
38 let result = server.run(tokio::time::sleep(Duration::from_secs(2))).await;
39 if let Err(err) = result {
40 eprintln!("server stopped with an error: {err}");
41 }
42}