首页 > 解决方案 > 定位服务器 IP 地址

问题描述

我正在 Libgdx 中制作一个游戏,其中用户(客户端)将自己是服务器的主机,并且只有一个其他客户端可以连接到他并与他一起玩(同样可能有多个独立的服务器和一对客户端互相玩像 miniclip 游戏),但其他客户端将如何定位主机客户端(或服务器)IP?我正在使用 kryonet 有人建议我做 NAT 打孔之类的,但我完全糊涂了。请帮忙

(我完全是网络初学者)

标签: networkingserverlibgdxipkryonet

解决方案


如果您希望您的客户端仅在 LAN 中发现服务器,您可以在服务器上进行广播并在客户端上进行嗅探。由于它们在同一个 LAN 中,因此不需要 NAT。

否则,您必须在 Internet 上设置管理器(用于管理的服务器)。服务器必须向管理器注册自己,客户端向管理器询问服务器信息。由于管理人员知道服务器和客户端的公共 IP 地址,因此一旦您将管理人员视为STUN服务器,NAT 应该很容易。

最简单的管理器可以只是一个简单的数据库/Redis 包装器,带有服务器名称/服务器 ip/服务器元数据表。有关如何实现它的详细信息取决于您的技能堆栈。要启用 STUN,您可以使用开源 STUN 服务器和客户端,例如coturn。无论您是否将 STUN 服务器放入您的管理器,您的管理器和 STUN 服务器都必须发布在互联网上(当然包括 AWS),并且它们有自己的公共 IP。

或者您可以让管理员为服务器和客户端中继消息。但这种方式与以前相比可能过于复杂。我不会推荐。


推荐阅读