udp multicast chat
1.0.0
UDP 멀티캐스트는 네트워크에서 일대다 통신을 위한 메커니즘을 제공합니다. 방송과 달리 멀티캐스트는 관심 있는 특정 멀티캐스트 주소에 가입한 사용자만 수신할 수 있습니다. 이 애플리케이션은 LAN을 통해 기본 채팅방 멀티캐스트를 구현합니다.
주의
채팅방의 모든 메시지는 암호화되지 않은 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