udp multicast chat
1.0.0
UDP マルチキャストは、ネットワーク内で 1 対多の通信のためのメカニズムを提供します。ブロードキャストとは異なり、マルチキャストは、対象となる特定のマルチキャスト アドレスに加入している人だけが受信できます。このアプリケーションは、ローカル エリア ネットワーク上で基本的なチャット ルーム マルチキャストを実装します。
注意
チャット ルーム内のすべてのメッセージは、暗号化されていないUDP マルチキャスト チャネル経由で送信されます。
ユーザー インターフェイスには、このプロジェクトでは egui フレームワークを使用します。バックエンドでは、Tokio ランタイムがすべての非同期ワークロード (ネットワーキング、同期、タスク スケジューリング) を強化します。
メインスレッドはユーザー インターフェイス ロジックを実行します。 Tokio ランタイムは、別のネットワーク スレッドで受信メッセージと送信メッセージを処理します。情報はチャネルを介して 2 つのスレッド間で受け渡されます。
起動時に、ネットワーク バックエンドは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