【发布时间】:2015-09-05 04:14:16
【问题描述】:
我无法从桌面上的程序访问模拟器上的 Android 服务器,我该如何解决?
一些代码(来自How to find LAN ip address of android device?):
public static ArrayList<String> getSelfIP(){
try {
ArrayList<String> ipList = new ArrayList<>();
for (Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements();) {
NetworkInterface intf = en.nextElement();
for (Enumeration<InetAddress> enumIpAddr = intf.getInetAddresses(); enumIpAddr.hasMoreElements();) {
InetAddress inetAddress = enumIpAddr.nextElement();
if (!inetAddress.isLoopbackAddress()) {
ipList.add(inetAddress.getHostAddress().toString());
}
}
}
return ipList;
} catch (SocketException ex) {}
return null;
}
结果是[fe80::5054:ff:fe12:3456%eth0, 10.0.2.15]
我必须进行哪些配置或做什么才能使我的桌面程序可以访问模拟器?
我做了以下事情:
> adb forward tcp:50000 tcp:50000
但是,我无法通过 localhost:50000 访问服务器。
【问题讨论】:
-
为什么这么难?见这里:developer.android.com/tools/devices/emulator.html 但是使用真实设备要容易得多。
-
我已经用转发 ADB 命令更新了问题,这似乎不起作用。
-
你用哪个ip和端口连接模拟器上的服务器?您的服务器正在侦听哪个端口?
-
Emulator Server 正在侦听 tcp 端口 50000。我尝试了 10.0.2.1 和 10.0.2.15 均无济于事。
-
您确定服务器正在侦听端口 50000 吗?试试这个命令:adb devices -l 查看你正在使用的模拟器的端口号。