1

我为魔兽争霸 III 构建了一个简单的实用程序,它允许用户加入远程托管的游戏,就好像他们可以在他们的局域网中访问一样。它的想法非常简单:

  1. 玩家 A 和 B 想玩。他们在路由器上设置端口转发,启动我的实用程序并交换他们的外部 IP 地址。
  2. 然后玩家在我的实用程序中输入彼此的 IP 地址,其中一名玩家创建了魔兽争霸 III 游戏。
  3. 我的实用程序使用魔兽争霸 III 数据包格式来查询其本地计算机以查找任何托管的魔兽争霸 III 游戏。如果它收到响应(带有游戏信息),它会简单地将其转发到列表中的每个 IP。
  4. 由于端口转发,数据包(更具体地说是数据报)到达了另一个魔兽争霸 III 实例,因此其他用户现在可以看到他朋友的游戏并加入它。

它工作得很好。但是,它仍然需要用户设置端口转发,这是我的问题 - 避免它的最佳方法是什么?

我一直在考虑 UPnP / NAT-PMP,但这在我的应用程序正在监听时最有用。在这种情况下,我只在另一端通知魔兽争霸 III 我的机器上有游戏。但是我可以为另一个应用程序创建一个端口映射吗?

我肯定错过了一些东西,所以如果有人能指出我正确的方向,我会很高兴。

4

0 回答 0