tokio udp multicast chat
1.0.0
Este ejemplo implementa un cliente de chat CLI muy simple que se comunica a través de multidifusión UDP. Se implementa con tokio crate, un tiempo de ejecución asincrónico para escribir aplicaciones sin bloqueo basadas en eventos con Rust.
El código es trivial, pero hay un detalle interesante a tener en cuenta. Para permitir la comunicación entre instancias en el mismo host, necesitamos habilitar SO_REUSEADDR
para el socket UDP. La API de tokio no expone una forma directa de hacer esto; en su lugar, usamos la caja socket2 para construir un socket personalizado que actualizamos a std::net::UdpSocket
y luego a tokio::net::UdpSocket
.
cargo
y Rust$ git clone https://github.com/henninglive/tokio-udp-multicast-chat/ && cd tokio-udp-multicast-chat
$ cargo build --release
(NOTA: hay una gran diferencia de rendimiento al compilar sin optimizaciones, por lo que recomiendo usar siempre --release
para habilitarlas)target/release/tokio-udp-multicast-chat
$ cargo run --release
para compilar y luego ejecutar, en un solo paso