“玩具应用程序”的UDP广播、多播或单播

“玩具应用程序”的UDP广播、多播或单播,udp,ip,multicast,Udp,Ip,Multicast,我想写一个玩具应用程序供我个人使用,并可能与朋友共享本地网络上的点对点共享状态。例如,假设我想为您所在的当前大楼的名称实现它,让我们假设网络拓扑很奇怪,多个大楼占用同一个LAN。这个想法是,如果您运行应用程序,您可以设置您所在的建筑,并且您可以看到在本地网络上运行该应用程序的所有其他用户的建筑 问题是,实现这一点的最佳传输/网络层技术是什么 我最初倾向于使用UDP多播,但我对它做的研究越多,我就越害怕它:虽然这项技术很棒,而且似乎很容易使用,但如果应用程序不是为特定的站点部署量身定做的,那么它也

我想写一个玩具应用程序供我个人使用,并可能与朋友共享本地网络上的点对点共享状态。例如,假设我想为您所在的当前大楼的名称实现它,让我们假设网络拓扑很奇怪,多个大楼占用同一个LAN。这个想法是,如果您运行应用程序,您可以设置您所在的建筑,并且您可以看到在本地网络上运行该应用程序的所有其他用户的建筑

问题是,实现这一点的最佳传输/网络层技术是什么

我最初倾向于使用UDP多播,但我对它做的研究越多,我就越害怕它:虽然这项技术很棒,而且似乎很容易使用,但如果应用程序不是为特定的站点部署量身定做的,那么它也很可能让你从愤怒的网络管理员那里得到访问

因此,我想知道,由于这是一个相对较低带宽的应用程序-可能每个客户端最多每4-5分钟更新一次,可能不超过25-50个客户端-使用其他策略是否在许多方面更便宜:

多播:找到一种方法从239.255/16中选择一个众所周知的多播地址,并在启动时让感兴趣的应用程序加入该组。 广播:每当某人的状态发生变化时发送一条UDP广播消息,当应用程序启动时发送一条刷新广播消息,之后每个客户端直接向请求用户回复其当前状态。 单播:在应用程序启动时发送UDP广播以宣布兴趣,当客户端的状态发生变化时,它会直接向每个已宣布兴趣的客户端发送UDP数据包。这会产生最高的通信量,但不太可能用不必要的广播数据包干扰其他系统。当应用程序因产生不必要的流量而崩溃时,它还带来了潜在的复杂性。 多播无疑是这项工作的最佳技术,但我想知道相关的麻烦是否值得避免,因为这只是一个玩具应用程序,而不是用于专业网络管理员部署和配置的业务关键型服务