Networking 查找服务器IP地址

Networking 查找服务器IP地址,networking,server,libgdx,ip,kryonet,Networking,Server,Libgdx,Ip,Kryonet,我正在Libgdx中制作一个游戏,其中一个用户(客户端)将自己作为服务器的主机 而且只有一个其他客户端可以连接到他并与他一起玩(同样,可能有多个独立的服务器和一对客户端像miniclip游戏一样相互玩) 但另一个客户端如何定位主机客户端(或服务器)IP? 我用的是kryonet 有人建议我打NAT之类的,但我完全糊涂了。 请帮忙 (我完全是网络新手)如果你想让你的客户机发现局域网中的服务器,你可以在服务器上进行广播,在客户机上进行嗅探。由于它们位于同一局域网中,因此不需要NAT 否则,您必须在I

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


(我完全是网络新手)

如果你想让你的客户机发现局域网中的服务器,你可以在服务器上进行广播,在客户机上进行嗅探。由于它们位于同一局域网中,因此不需要NAT

否则,您必须在Internet上设置管理器(用于管理的服务器)。服务器必须向管理员注册,客户端向管理员询问服务器信息。因为管理者知道服务器和客户机的公共IP地址,所以一旦你认为你的管理者是服务器,NAT应该很容易

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


或者,您可以让管理员为服务器和客户端转发消息。但与以前的方法相比,这种方法可能太复杂了。我不推荐。

我是一个完全的网络初学者,起初我认为,每当一个用户要托管服务器时,我都会将他的IP上传到云上的某个地方,让其他客户端搜索他的IP(当时我不知道NAT和STUN)。现在也许你对经理的看法是对的,但请指导我在哪里以及如何设置经理。我真的很想实现我的愿望。“如果你想让你的客户机只在局域网中发现服务器,你可以在服务器上进行广播,在客户机上进行嗅探。”这是不推荐的方法。在现代世界中,我们使用多播。广播是一个失败的想法,IETF甚至没有考虑IPv6,因为它浪费网络资源,是一个安全风险。