服务器通过组播发送文件,UDP组播服务器可以在LAN外发送数据包吗?

在开发多人在线游戏中,考虑到效率和实时性,选择使用UDP协议。客户端的位置更新存储在服务器,并且需要定期广播给其他客户端,而不是逐个发送。多播能解决这个问题,允许服务器一次向多个客户端发送数据,而无需知道所有客户端的IP。尽管大多数多播示例限于本地网络,但理论上可以通过路由器进行多播。寻求在Java中实现跨路由器的多播方案,以便服务器能向不在同一LAN内的客户端广播玩家位置更新。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我正在制作一个多人游戏,玩家的动作通过网络发送,他们的位置存储在服务器中 . 我被告知UDP是最好的,因为它不依赖于持续连接,如果客户端错过了一个数据包也没关系 . 客户端可以在任何路由器上,不一定在服务器的LAN内 .

是否可以设置客户端可以连接的服务器,它将向所有服务器发送附近对象/播放器位置的定期更新?

我不想将数据包发送到每个客户端,我听说多播可以解决这个问题,但我看到的每个例子都只能通过本地网络发送数据包 . 我可以组播过去的路由器,如果是,我怎么能用Java做到这一点? (并向我解释,因为我不知道我在做什么,这主要是真的)

防爆 .

服务器的IP地址为71.10.200.133

客户端A的IP地址为38.49.339.293

客户B的IP地址为37.28.487.388

...

客户端Z的IP地址为43.38.382.949

客户端A向服务器发送有关玩家位置的更新

服务器向B-Z发送更新,而不向每个客户端迭代数据包 . 我如何做到这一点(如果可能的话)?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值