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