我在Libgdx中做了一个游戏,其中一个用户(客户端)将是服务器的主机,并且只有一个其他客户端可以连接到他并与他一起玩(同样,可能有多个独立的服务器和一对客户端相互玩,就像miniclip游戏一样),但是其他客户端如何定位主机-客户端(或服务器)的IP?我用的是kryonet,有人建议我做NAT拳击之类的,但我完全搞不懂了。请帮帮忙
(我完全是网络方面的新手)
发布于 2019-10-02 15:31:06
如果你想让你的客户端发现局域网中的服务器,你可以在服务器上进行广播,并在客户端上进行嗅探。由于它们位于同一LAN中,因此不需要NAT。
否则,您必须在Internet上设置管理器(用于管理的服务器)。服务器必须将自己注册到管理器,客户端向管理器询问服务器信息。由于管理员知道服务器和客户端的公共IP地址,因此一旦您将管理员视为STUN服务器,NAT就会变得很容易。
最简单的管理器可以只是一个简单的数据库/Redis包装器,带有一个服务器名称/服务器ip/服务器元数据表。关于如何实现它的细节取决于您的技能堆栈。要启用STUN,可以选择开源的STUN服务器和客户端,例如coturn。无论你是否将STUN服务器放入你的经理,你的经理和STUN服务器都必须发布在互联网上(当然包括AWS),在那里他们有自己的公共IP。
或者,您可以让管理器为服务器和客户端中继消息。但与以前相比,这种方式可能太复杂了。我不建议你这么做。
https://stackoverflow.com/questions/58196559
复制相似问题