Android游戏服务器无法使用kryonet + LibGdx !! hallpp

时间:2013-11-25 11:14:46

标签: libgdx kryonet

我目前正在开发一个Android多人游戏(一对一战斗),使用libgdx图形api和kryonet api用于所有服务器客户端网络。如果你可能不知道,libgdx是一个用于游戏开发的开源java api。 Kryonet是一个独立的网络api,适用于游戏PC,Android和Linux。 到目前为止一切都很顺利,...制作了一台服务器,2个客户作为玩家。

我尝试在PC上运行服务器和客户端。它的工作。 然后我试着在Android手机的PC和播放器客户端上运行服务器。它的工作。

但是......当我使用我的Android手机作为服务器时,问题就发生了。我的客户端程序无法发现android服务器。我甚至确定我使用了whatsmyip.com手机的ip。但我的android服务器仍然是隐形的。我确保使用互联网权限正确设置清单。

由于其mobild ip,甚至可以将Android手机作为服务器运行吗?我非常需要这项工作,以便不需要中央服务器。玩家可以简单地以p2p方式玩游戏,其中一个玩家启动服务器,另一个玩家加入服务器玩家。

1 个答案:

答案 0 :(得分:1)

我遇到了类似的问题。我假设您尝试使用移动网络连接。问题是你的手机可能落后于一组防火墙。我已经研究了可用于解决问题的不同解决方案。

问题是您在外部看到的IP地址作为您的电话IP地址不是“真实”地址。这是许多移动设备通过的网关。网关使用称为NAT tables的技术来确定到达此IP地址的流量属于您的设备。网关收到的任何流量,它通常不会忽略它。 This 文章对这些问题进行了很好的概述。

有很多方法可以查看不同的hole punching 方法(STUN ...)。

我尝试了几种不同的方法来解决这个问题,但最后我不得不考虑使用中继服务器。我使用的是亚马逊网络服务(AWS),它提供免费套餐,可以让您的应用程序正常运行。让你入门是件好事,我一直用它来传递信息。

希望这会有所帮助。