tokio udp multicast chat
1.0.0
Contoh ini mengimplementasikan klien obrolan CLI yang sangat sederhana yang berkomunikasi melalui multicast UDP. Ini diimplementasikan dengan tokio crate, runtime asinkron untuk menulis aplikasi non-pemblokiran yang digerakkan oleh peristiwa dengan Rust.
Kodenya sepele, tapi ada satu detail menarik yang perlu diperhatikan. Untuk memungkinkan komunikasi antar instance pada host yang sama kita perlu mengaktifkan SO_REUSEADDR
untuk soket UDP. Tokio API tidak memaparkan cara langsung untuk melakukan hal ini, kami malah menggunakan peti socket2 untuk membuat soket khusus yang kami tingkatkan ke std::net::UdpSocket
dan kemudian menjadi tokio::net::UdpSocket
.
cargo
dan Rust saat ini$ git clone https://github.com/henninglive/tokio-udp-multicast-chat/ && cd tokio-udp-multicast-chat
$ cargo build --release
(CATATAN: Ada perbedaan kinerja yang besar saat kompilasi tanpa pengoptimalan, jadi saya sarankan untuk selalu menggunakan --release
untuk mengaktifkannya)target/release/tokio-udp-multicast-chat
$ cargo run --release
untuk membangun dan kemudian menjalankan, dalam satu langkah