【问题标题】:Locating servers IP address定位服务器 IP 地址
【发布时间】:2020-01-31 10:34:19
【问题描述】:

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

(我完全是网络初学者)

【问题讨论】:

    标签: networking server libgdx ip kryonet


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 我是一个完整的网络初学者,起初我认为每当用户托管服务器时,我都会将他的IP上传到云上的某个地方,让其他客户端搜索他的IP(当时我不知道 NAT 和 STUN)。现在,也许您对经理的看法是正确的,但请指导我在哪里以及如何设置它们。我真的很想实现我的愿望。
    • "如果您希望您的客户端仅在 LAN 中发现服务器,您可以在服务器上进行广播并在客户端上进行嗅探。" 这是不推荐使用的方法.在现代世界中,我们使用多播。广播是一个失败的想法,IETF 甚至没有考虑 IPv6,因为它浪费网络资源并且存在安全风险。
    猜你喜欢
    • 2016-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-20
    • 2015-06-21
    • 2011-08-01
    • 2011-05-24
    相关资源
    最近更新 更多