gpt4 book ai didi

java - 如何创建跨网络运行的 P2P 游戏?

转载 作者:行者123 更新时间:2023-12-01 15:26:41 26 4
gpt4 key购买 nike

我目前正在开发一个基于 Java 的游戏,可以 P2P 玩,无需服务器。到目前为止,我已经能够让它工作了,一个人输入另一个人的 IP,我通过通话得到了这个 IP

InetAddress.getLocalHost().getHostAddress());

但是,这只适用于同一网络上的两台计算机。如何获得跨网络工作的 IP?感谢您的帮助!

编辑:这是一个1v1的游戏,所以多个连接不是问题。我打算让用户通过 Skype 或其他方式发送 IP...这只是我想与我的 friend 一起使用的东西。前任。它显示 IP,您将其发送给您的 friend ,他使用它进行连接。

最佳答案

即使是 torrent P2P 网络也使用服务器来确定对等点的 IP 地址。获取 IP 地址后,连接当然是在对等点之间进行的。所以我建议至少有一个 Web 服务来列出对等点的 IP 地址。 (或者您可以将类似 listActivePeers.php/aspx/etc 的文件放入您的网站,并每 5 分钟 ping 一次,并列出已 ping 的 IP 地址。)

而且我还想指出,每个对等节点都需要打开与另一个对等节点的连接,除非您有几个玩家,否则这不是那么有效。如果您有 100 个在线玩家,那么每个对等方最终都会有 100 个连接,有时某些接入点或调制解调器不支持这种 Activity 连接!它们可能会被卡住或变慢。

此外,您还需要处理大量并发问题。认为两个数据同时到达两个同行。在采取任何行动之前,同伴需要互相检查“我是否可以采取这一行动?或者你们中的任何人采取任何行动我应该注意吗?”。因此,在每次移动之前,您都会通过通过您拥有的连接发送一些信息来锁定其他对等点,并且每个人都会在移动之前执行此操作。

更新(来 self 上面的评论)
检查此链接以获取您的 IP 地址。 https://stackoverflow.com/a/2939223/1216609还可以在 google 上搜索“调制解调器端口打开或转发 [接入点/调制解调器的品牌/型号]”查询,以转发特定于您的调制解调器或路由器的端口。

关于java - 如何创建跨网络运行的 P2P 游戏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10061721/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com