【发布时间】:2012-02-26 00:48:25
【问题描述】:
我的应用程序使用多播在周期内发送信标以及协议消息和加入多播组的主机的 ip。在 android 设备中它返回 127.0.0.1。我环顾四周,发现很多人建议更改主机文件。但是,在 android 的情况下,在我的上下文中是不可能的。如何获取设备的真实 IP,而不是环回地址..
private void getLocalAddress()
{
try {
String localHost = InetAddress.getLocalHost().getHostAddress();
servers.add(localHost);
} catch (UnknownHostException e) {
e.printStackTrace();
}
}
【问题讨论】:
-
在我的手机上,除非它已激活 Wi-Fi 并连接到 Wi-Fi 网络,否则它没有 IP 地址。如果没有本地地址,则
getLocalHost返回环回地址,这就是你得到的。 -
@JoachimPileborg 试试我的答案。我希望这能解决你的问题。
标签: android sockets network-programming