获取主机IP地址

Getting IP address of host

我创建了一个小游戏,现在我正在尝试用它制作一款多人游戏。一个 android phone 应该主持游戏,另一个 phone 应该能够连接到这个服务器。我的问题是如何告诉客户他应该连接到哪个 IP。有没有办法扫描主机?

您可以使用网络服务发现:

http://developer.android.com/intl/es/training/connect-devices-wirelessly/nsd.html

如果我没理解错的话,你希望游戏主机在可达网络中宣传自己,让客户端加入。

在网络协议栈的不同层次上有很多可能性。

我想到的要看的东西:

你看,有很多可能性。也许您想将问题缩小到您的特定需求:

  • 听众是谁,是"LAN-party",手机某处的其他手机space?
  • 你愿意为此付出多少努力?
  • 您需要支持哪些平台?

对于 Android 游戏,有一个完美(且简单)的库,名为 kryonet

它有一个方法 - discoverHost - 用于扫描本地网络 以查找正在侦听传入连接的设备。

另外,它包含类例如:

这使得实现简单的通信协议(UDP 和 TCP 协议)变得非常容易。

因为很多人使用这个库(包括我)- 你可以找到很多例子:

...以及许多其他人。 :)

更新 1:

Google 还有一个名为 Nearby Connections API 的很棒的库,它允许 自动发现本地网络中的设备 并允许创建多人游戏(或多屏幕)游戏。

此外,Google 已经为 WAN 上的多人游戏创建了不错的(多平台)API

您可以找到附近连接和实时多人游戏 API 的示例 here