tokio udp multicast chat
1.0.0
이 예에서는 UDP 멀티캐스트를 통해 통신하는 매우 간단한 CLI 채팅 클라이언트를 구현합니다. 이는 Rust를 사용하여 이벤트 중심의 비차단 애플리케이션을 작성하기 위한 비동기 런타임인 tokio 크레이트로 구현됩니다.
코드는 간단하지만 주목해야 할 흥미로운 세부 사항이 하나 있습니다. 동일한 호스트에 있는 인스턴스 간의 통신을 허용하려면 UDP 소켓에 대해 SO_REUSEADDR
활성화해야 합니다. tokio API는 이를 수행하는 직접적인 방법을 제공하지 않습니다. 대신에 우리는 소켓2 크레이트를 사용하여 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
사용하여 한 단계로 빌드하고 실행합니다.