tokio udp multicast chat
1.0.0
ตัวอย่างนี้ใช้ไคลเอนต์แชท CLI ธรรมดาซึ่งสื่อสารผ่านมัลติคาสต์ UDP มีการนำไปใช้กับ tokio crate ซึ่งเป็นรันไทม์แบบอะซิงโครนัสสำหรับการเขียนแอปพลิเคชันที่ขับเคลื่อนด้วยเหตุการณ์และไม่ปิดกั้นด้วย Rust
รหัสนี้ไม่สำคัญ แต่มีรายละเอียดที่น่าสนใจประการหนึ่งที่ควรทราบ เพื่ออนุญาตการสื่อสารระหว่างอินสแตนซ์บนโฮสต์เดียวกัน เราจำเป็นต้องเปิดใช้งาน SO_REUSEADDR
สำหรับซ็อกเก็ต UDP tokio API ไม่ได้เปิดเผยวิธีการโดยตรงในการทำเช่นนี้ แต่เราใช้ลัง socket2 เพื่อสร้างซ็อกเก็ตแบบกำหนดเองที่เราอัปเกรดเป็น std::net::UdpSocket
จากนั้นจึงเปลี่ยนเป็น tokio::net::UdpSocket
cargo
และ Rust เวอร์ชันปัจจุบันแล้ว$ git clone https://github.com/henninglive/tokio-udp-multicast-chat/ && cd tokio-udp-multicast-chat
$ cargo build --release
(หมายเหตุ: มีความแตกต่างด้านประสิทธิภาพอย่างมากเมื่อทำการคอมไพล์โดยไม่มีการปรับให้เหมาะสม ดังนั้นฉันขอแนะนำให้ใช้ --release
เพื่อเปิดใช้งานเสมอ)target/release/tokio-udp-multicast-chat
$ cargo run --release
เพื่อสร้างแล้วรันในขั้นตอนเดียว