udp multicast chat
1.0.0
UDP 多播提供了一個網路中一對多通訊的機制。與廣播不同,多播只能由訂閱感興趣的特定多播位址的人接收。該應用程式透過區域網路實現基本的聊天室多播。
警告
聊天室中的所有訊息都透過未加密的UDP 多播通道發送。
對於使用者介面,該項目使用egui框架。在後端,Tokio 運行時為所有非同步工作負載提供支援:網路、同步和任務調度。
主執行緒運行使用者介面邏輯。 Tokio 運行時在單獨的網路執行緒上處理傳入和傳出訊息。訊息透過通道在兩個執行緒之間傳遞。
啟動時,網路後端初始化綁定到0.0.0.0:3000
的套接字。然後套接字加入多播位址224.0.0.69:3000
。為了防止應用程式的多個實例綁定到同一位址(在同一裝置上), SO_REUSEADDR
標誌被停用。所有這些值都可以透過命令列介面進行調整。
Usage: udp-multicast-chat [-a <addr>] [-p <port>] [--reuse]
Networking options.
Options:
-a, --addr multicast address that the socket must join
-p, --port specific port to bind the socket to
--reuse whether or not to allow the UDP socket to be reused by
another application
--help display usage information
運行伺服器
# Bind to `0.0.0.0:3000`, then join the multicast address
# `224.0.0.69:3000`, and launch the user interface.
cargo run --release -- --addr 224.0.0.69 --port 3000