tokio udp multicast chat
1.0.0
この例では、UDP マルチキャスト経由で通信する非常に単純な CLI チャット クライアントを実装します。これは、Rust でイベント駆動型のノンブロッキング アプリケーションを作成するための非同期ランタイムである tokio crate で実装されています。
コードは簡単ですが、注目すべき興味深い詳細が 1 つあります。同じホスト上のインスタンス間の通信を許可するには、UDP ソケットのSO_REUSEADDR
有効にする必要があります。 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
使用して 1 ステップでビルドして実行します