tokio udp multicast chat
1.0.0
Este exemplo implementa um cliente de chat CLI muito simples que se comunica por multicast UDP. Ele é implementado com o tokio crate, um tempo de execução assíncrono para escrever aplicativos não bloqueadores e orientados a eventos com o Rust.
O código é trivial, mas há um detalhe interessante a ser observado. Para permitir a comunicação entre instâncias no mesmo host, precisamos habilitar SO_REUSEADDR
para o soquete UDP. A API tokio não expõe uma maneira direta de fazer isso; em vez disso, usamos a caixa socket2 para construir um soquete personalizado que atualizamos para std::net::UdpSocket
e depois para um tokio::net::UdpSocket
.
cargo
e do Rust instalada$ git clone https://github.com/henninglive/tokio-udp-multicast-chat/ && cd tokio-udp-multicast-chat
$ cargo build --release
(NOTA: Há uma grande diferença de desempenho ao compilar sem otimizações, então recomendo sempre usar --release
para habilitá-los)target/release/tokio-udp-multicast-chat
$ cargo run --release
para construir e depois executar, em uma única etapa