【问题标题】:Android Server Socket安卓服务器套接字
【发布时间】: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]

我必须进行哪些配置或做什么才能使我的桌面程序可以访问模拟器?

我做了以下事情:

&gt; 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 查看你正在使用的模拟器的端口号。

标签: android sockets server


【解决方案1】:

尝试使用IP地址10.0.2.2

它是主机环回接口的特殊别名(即,您的开发机器上的 127.0.0.1)

【讨论】:

    【解决方案2】:

    我曾经遇到过这个问题,使用 10.0.2.2 IP 地址应该可以解决您的问题。

    【讨论】:

      【解决方案3】:

      查看this Android 文档,“使用网络重定向”部分。

      通过模拟器控制台设置重定向

      每个模拟器实例都提供一个您可以连接的控制台 to,发出特定于该实例的命令。您可以使用 redir 控制台命令根据需要设置重定向 模拟器实例。

      首先,确定目标模拟器的控制台端口号 实例。例如,第一个模拟器的控制台端口号 启动的实例是5554。接下来,连接到目标的控制台 模拟器实例,指定其控制台端口号,如下:

      telnet localhost 5554

      连接后,使用redir命令工作 带重定向。要添加重定向,请使用:

      add &lt;protocol&gt;:&lt;host-port&gt;:&lt;guest-port&gt;

      &lt;protocol&gt; 是 tcp 或 udp,&lt;host-port&gt;&lt;guest-port&gt; 设置您之间的映射 分别是自己的机器和仿真系统。

      例如,下面的命令设置一个重定向来处理 到您的主机(开发)机器的所有传入 TCP 连接 127.0.0.1:5000 并将它们传递到模拟系统的 10.0.2.15:6000:

      redir add tcp:5000:6000

      在你的情况下,最后一个命令是

      redir add tcp:5000:5000
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-03-31
        • 2021-08-30
        • 1970-01-01
        • 2010-12-20
        • 1970-01-01
        • 2011-12-01
        相关资源
        最近更新 更多