0

我想使用 java Sockets 连接不同网络上的两个 Android 设备。一台设备将充当服务器,另一台设备充当客户端。服务器必须发布哪个地址以便客户端可以连接到它?

java.net具有提供具有本地主机信息(主机名,本地主机地址)的实例InetAddress的方法的类。getLocalHost()如果我在我的机器上运行它,我得到的地址是 192.168.1.101。这是服务器设备必须发布以便客户端设备连接到它的地址吗?我假设没有,因为它是本地地址。那么,我在哪里可以获得每个设备的正确地址呢?

4

1 回答 1

1

您可以使用NetworkInterface枚举所有网络接口。您可能还需要处理连接更改,例如从 3G 切换到 Wifi 等。一般情况下,您的设备不能保证具有全局 IP 地址,因此除非您仅在自己的网络上运行它并且您有有效的 IP 或已设置必要的 NAT/端口转发等。您可能无法连接到它。

于 2012-09-24T02:33:10.550 回答