pub fn all_ipv4_interfaces() -> Result<Vec<Ipv4Addr>>
Examples found in repository?
examples/mdns.rs (line 10)
4fn main() {
5 let mdns_multicast_address = SocketAddrV4::new([224, 0, 0, 251].into(), 5353);
6
7 // Validate that building with options works with the public API
8 let with_options = MulticastSocket::with_options(
9 mdns_multicast_address,
10 multicast_socket::all_ipv4_interfaces()
11 .expect("could not fetch all interfaces for options"),
12 multicast_socket::MulticastOptions {
13 ..Default::default()
14 },
15 )
16 .expect("validate that we are starting with options");
17 drop(with_options);
18
19 let socket = MulticastSocket::all_interfaces(mdns_multicast_address)
20 .expect("could not create and bind socket");
21
22 let data = vec![1, 2];
23 socket
24 .broadcast(&data)
25 .expect("could not broadcast message to ips being listened");
26
27 loop {
28 if let Ok(message) = socket.receive() {
29 dbg!(&message.interface);
30 dbg!(&message.origin_address);
31
32 let data = vec![9, 8, 7];
33 socket
34 .send(&data, &message.interface)
35 .expect("could not send data");
36 };
37 }
38}