【问题标题】:Connecting Real device to Android emulator将真实设备连接到 Android 模拟器
【发布时间】:2010-10-21 18:14:28
【问题描述】:

我正在为 Android 开发一个网络应用程序,但我仍然坚持将我的真实 Android 设备与在我的台式计算机上运行的设备模拟器连接。

我用路由器创建了专用网络,所以连接到网络的只有我的电脑和手机,以避免防火墙/关闭端口问题。

我的 PC ip 是 192.168.1.100,我正在尝试相互 ping 通,以便每个网络节点的海上可达性。 Ping 从我的电脑(不是模拟器控制台)到手机可以正常工作。

问题是我想从我的手机 ping PC 模拟器,而不是 PC 本身...为此,我使用模拟器控制台...我应该使用我的计算机 IP 还是应该使用另一个?我在这里看到了一些类似“10.0.x.x”的ip http://developer.android.com/guide/developing/tools/emulator.html

但我猜那些是用来连接两个模拟器的,对吧?

此外,我尝试通过套接字连接它们,通过模拟器控制台为端口创建重定向,但仍然无法连接它们。

有什么线索吗? 谢谢!!

【问题讨论】:

    标签: android-emulator ping


    【解决方案1】:

    我尝试了我给你的早期解决方案,但没有奏效。正如您所说,可能原因是模拟器控制台的 redir 命令仅重定向来自本地主机的数据包。

    于是我搜索了一个简单的代理服务器,并在同一台机器上进行了测试。

    http://www.java2s.com/Code/Java/Network-Protocol/Asimpleproxyserver.htm

    我使用了以下配置:

    在代理上:

    String host = "localhost";
    int remoteport = 3000;
    int localport = 4000;
    

    然后运行模拟器实例:

    • 在端口 2000 上侦听的服务器套接字。
    • 打开 telnet 实例并发出“redir add tcp:3000:2000”

    最后在真实设备上打开一个套接字到机器地址的 4000 端口。

    所以网络图是这样的:

    设备 机器:4000 代理机器:3000 :3000 模拟器:2000 -> 应用程序

    这对我在设备和模拟器上使用相同的应用程序很有用。

    【讨论】:

    • 非常感谢,我去看看
    • 适用于 api 19,但不适用于 api 28。使用 api 28 模拟器获得以下异常:java.net.SocketException:java.net.SocketOutputStream.socketWrite0 处的管道损坏(写入失败) (本机方法)在 java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:111)
    【解决方案2】:

    我已经得出结论,模拟器只能接收来自环回 (127.0.0.1) 的数据包,因为当您发出“redir add tcp:port:newPort”时,它只会重定向第一个端口(与环回关联)到第二个端口(关联到“模拟器虚拟 ip”)。

    我尝试创建一个网桥,它将所有到达我电脑的数据包重定向到 IP 127.0.0.1,但仍然无法正常工作。因此,我认为模拟器的开发只是为了与其他模拟器进行通信......

    我希望任何来这里的人都反对我。

    【讨论】:

      【解决方案3】:

      您可以将真实设备与模拟器实例连接起来。

      您是否尝试在模拟设备上设置重定向,然后通过 java 套接字连接真实设备?

      例如:

      在模拟设备上打开一个监听 2000 端口的服务器套接字,然后打开一个 telnet 连接并发出命令:

      redir 添加 tcp:4000:2000

      最后,在真机上打开一个socket到你的机器地址(192.168.1.100)的4000端口。

      【讨论】:

      • 感谢您的回答。我试过了,但没有用……我终于得到了另一部 Android 手机,所以我放弃了,但如果你能连接它们,我想知道如何……
      猜你喜欢
      • 2021-08-30
      • 1970-01-01
      • 2011-12-14
      • 1970-01-01
      • 2010-11-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多