udp_polygon 0.2.0

A UDP datagram library for Rust
Documentation
extern crate udp_polygon;
use serde_derive::{Deserialize, Serialize};
use std::net::{IpAddr, Ipv4Addr};
use udp_polygon::{config::Address, config::Config, config::FromArguments, Polygon};

#[derive(Debug, Deserialize, Serialize)]
pub struct Message {
    pub id: u32,
    pub msg: String,
}

#[tokio::main]
async fn main() {
    let config = Config::from_arguments(
        vec![Address {
            ip: IpAddr::V4(Ipv4Addr::new(0, 0, 0, 0)),
            port: 5060,
        }],
        Some(Address {
            ip: IpAddr::V4(Ipv4Addr::new(0, 0, 0, 0)),
            port: 5061,
        }),
    );
    let mut polygon = Polygon::configure(config);

    let rx = polygon.receive();

    loop {
        let maybe = rx.try_recv();
        if let Ok(data) = maybe {
            println!("receiving... {data:?}");
            polygon.send(
                serde_json::to_string(&Message {
                    id: 1,
                    msg: String::from("Hello there!!!"),
                })
                .unwrap(),
            );
        }
    }
}