1 use std::net::{Ipv4Addr, SocketAddr}; 2 use tokio::sync::mpsc; 3 use webrtc_mdns::{config::*, conn::*}; 4 5 #[tokio::main] 6 async fn main() { 7 env_logger::init(); 8 9 log::trace!("server a created"); 10 11 let server_a = DnsConn::server( 12 SocketAddr::new(Ipv4Addr::new(0, 0, 0, 0).into(), 5353), 13 Config { 14 local_names: vec![ 15 "webrtc-rs-mdns-1.local".to_owned(), 16 "webrtc-rs-mdns-2.local".to_owned(), 17 ], 18 ..Default::default() 19 }, 20 ) 21 .unwrap(); 22 23 let server_b = DnsConn::server( 24 SocketAddr::new(Ipv4Addr::new(0, 0, 0, 0).into(), 5353), 25 Config { 26 ..Default::default() 27 }, 28 ) 29 .unwrap(); 30 31 let (a, b) = mpsc::channel(1); 32 33 tokio::spawn(async move { 34 tokio::time::sleep(tokio::time::Duration::from_secs(20)).await; 35 a.send(()).await 36 }); 37 38 let (answer, src) = server_b.query("webrtc-rs-mdns-1.local", b).await.unwrap(); 39 println!("webrtc-rs-mdns-1.local answer = {}, src = {}", answer, src); 40 41 let (a, b) = mpsc::channel(1); 42 43 tokio::spawn(async move { 44 tokio::time::sleep(tokio::time::Duration::from_secs(20)).await; 45 a.send(()).await 46 }); 47 48 let (answer, src) = server_b.query("webrtc-rs-mdns-2.local", b).await.unwrap(); 49 println!("webrtc-rs-mdns-2.local answer = {}, src = {}", answer, src); 50 51 server_a.close().await.unwrap(); 52 server_b.close().await.unwrap(); 53 } 54