netsim-embed 0.9.1

Network simulator.
Documentation
use anyhow::Result;
use async_trait::async_trait;
use netsim_embed_cli::{run_client, Client};
use std::net::{Ipv4Addr, SocketAddrV4, UdpSocket};

pub struct BroadcastClient;

#[async_trait]
impl Client for BroadcastClient {
    async fn run(&mut self, _addr: Ipv4Addr) -> Result<()> {
        let socket = async_io::Async::<UdpSocket>::bind((Ipv4Addr::UNSPECIFIED, 0))?;
        let multicast = [224, 0, 0, 251].into();
        socket
            .send_to(b"broadcast", SocketAddrV4::new(multicast, 5353))
            .await?;

        println!("sent broadcast message");
        Ok(())
    }
}

#[async_std::main]
async fn main() -> Result<()> {
    run_client(BroadcastClient).await
}