【问题标题】:Fundamental Networking Understanding基本网络理解
【发布时间】:2020-05-27 09:31:16
【问题描述】:

踏过一些陌生的水域。我目前正在用 Unity/C# 编写游戏客户端,并在 NodeJS 中编写游戏服务器。我一直在做很多谷歌搜索,试图得到一些答案,但有些基本原理我绝对不明白。据我了解,这里有三个相关的IP地址:我的外部IP地址127.0.0.1和0.0.0.0。我已经为客户端和服务器尝试了所有这些排列(有或没有常识),唯一有效的组合是 127.0.0.1 x 127.0.0.1。我最终假设服务器需要在 0.0.0.0 上,但目前 Unity 出错了,因为该套接字已被服务器使用 - 我认为这不会是远程托管的问题。

我的问题是:

  1. 是否可以在没有套接字重叠的情况下在我的家用计算机上托管它?虚拟机?
  2. 为什么 127.0.0.1 x 127.0.0.1 有效?客户端是否将其转换为引擎盖下的另一个本地地址?我假设它们都是 UDP/127.0.0.1/port 套接字。

我想尽快将多人游戏加入到这个游戏中。谢谢!

【问题讨论】:

    标签: node.js unity3d networking


    【解决方案1】:
    1. 是的,可以使用虚拟主机、虚拟机。如果您在 Windows 中工作,如果您在 Mac 中,请查看 XAMPP 或 WAMPP。

    2. 这个有点大:

    127.0.0.1 是本地主机(基本上是您自己),也称为环回地址。

    而且 0.0.0.0 是一个不可路由的元地址。基本上它用于指定无效目标,它就像“未知”地址的占位符。服务指定无效的目标并不意味着这是一个无效的地址!

    在您的上下文中,如果您使用 0.0.0.0 作为服务器,则意味着“本地计算机上的所有 IPv4 地址”。如果主机有两个 IP 地址,192.168.1.1 和 10.1.2.1,并且在主机上运行的服务器侦听 0.0.0.0,那么这两个 IP 都可以访问它。

    Tom Weiland 的这篇教程对我学习 Unity 在线编程很有帮助,看看:https://www.youtube.com/watch?v=uh8XaC0Y5MA

    【讨论】:

      猜你喜欢
      • 2020-09-29
      • 1970-01-01
      • 2012-04-15
      • 1970-01-01
      • 1970-01-01
      • 2018-05-03
      • 2013-07-19
      • 1970-01-01
      相关资源
      最近更新 更多