tokio udp multicast chat
1.0.0
Dieses Beispiel implementiert einen sehr einfachen CLI-Chat-Client, der über UDP-Multicast kommuniziert. Es wird mit der tokio-Kiste implementiert, einer asynchronen Laufzeit zum Schreiben ereignisgesteuerter, nicht blockierender Anwendungen mit Rust.
Der Code ist trivial, aber es gibt ein interessantes Detail zu beachten. Um die Kommunikation zwischen Instanzen auf demselben Host zu ermöglichen, müssen wir SO_REUSEADDR
für den UDP-Socket aktivieren. Die tokio-API bietet hierfür keine direkte Möglichkeit. Stattdessen verwenden wir die socket2-Kiste, um einen benutzerdefinierten Socket zu erstellen, den wir auf std::net::UdpSocket
und dann in einen tokio::net::UdpSocket
aktualisieren.
cargo
und Rust installiert haben$ git clone https://github.com/henninglive/tokio-udp-multicast-chat/ && cd tokio-udp-multicast-chat
$ cargo build --release
(HINWEIS: Es gibt einen großen Leistungsunterschied beim Kompilieren ohne Optimierungen, daher empfehle ich, immer --release
zu verwenden, um sie zu aktivieren)target/release/tokio-udp-multicast-chat
$ cargo run --release
, um in einem Schritt zu erstellen und dann auszuführen