我正在Libgdx中制作一个游戏,其中用户(客户端)将自己作为服务器的主机 并且只有另一个客户端可以连接到他并与他一起玩(同样,可能有多个独立的服务器,并且一对客户端像miniclip游戏一样在彼此一起玩) 但是另一个客户端将如何定位主机(或服务器)IP? 我正在使用kryonet 有人建议我做NAT打孔和其他工作,但我完全感到困惑。 请帮助
(我是网络的完整初学者)
答案 0 :(得分:0)
如果希望客户端仅在LAN中发现服务器,则可以在服务器上进行广播并在客户端上进行嗅探。由于它们位于同一LAN中,因此不需要NAT。
否则,您必须在Internet上设置管理器(用于管理的服务器)。服务器必须向管理者注册自己,客户端向管理者询问服务器信息。由于管理者都知道服务器和客户端的公共IP地址,因此一旦您将管理者视为STUN服务器,NAT就很容易了。
最简单的管理器可以只是带有服务器名称/服务器ip /服务器元数据表的数据库/ Redis的简单包装。有关如何实现它的详细信息取决于您的技能。要启用STUN,您可以直接使用开源的STUN服务器和客户端,例如coturn。无论您是否将STUN服务器放入管理器,管理器和STUN服务器都必须在具有自己的公共IP的互联网上发布(确保包括AWS)。
或者您可以让管理员为服务器和客户端中继消息。但是与以前相比,这种方法可能太复杂了。我不推荐。