tokio udp multicast chat
1.0.0
Cet exemple implémente un client de discussion CLI très simple qui communique via la multidiffusion UDP. Il est implémenté avec Tokio Crate, un environnement d'exécution asynchrone permettant d'écrire des applications non bloquantes et basées sur des événements avec Rust.
Le code est trivial, mais il y a un détail intéressant à noter. Pour permettre la communication entre les instances sur le même hôte, nous devons activer SO_REUSEADDR
pour le socket UDP. L'API tokio n'expose pas de moyen direct de le faire, nous utilisons à la place la caisse socket2 pour construire un socket personnalisé que nous mettons à niveau vers std::net::UdpSocket
puis vers un tokio::net::UdpSocket
.
cargo
et Rust est installée$ git clone https://github.com/henninglive/tokio-udp-multicast-chat/ && cd tokio-udp-multicast-chat
$ cargo build --release
(REMARQUE : il existe une grande différence de performances lors de la compilation sans optimisations, je recommande donc de toujours utiliser --release
pour les activer)target/release/tokio-udp-multicast-chat
$ cargo run --release
pour construire puis exécuter, en une seule étape