两个Android模拟器之间的通信

时间:2010-11-25 14:22:05

标签: java android

我的机器在7号窗口上运行。 我想在同一台机器上运行的两个android模拟器之间进行通信 模拟器首先在监听IP 10.0.2.15 当第二个模拟器尝试创建

Socket socket = new Socket ("10.0.2.15",8080);

它提供异常,无法连接到10.0.2.15 有谁知道如何解决这个问题?

3 个答案:

答案 0 :(得分:3)

  

当模拟器2尝试创建Socket socket = new Socket(“10.0.2.15”,8080);它给出了异常

这是试图在模拟器本身上打开端口8080,而不是在另一个模拟器上打开。

  

有没有人知道如何解决这个问题?

按照interconnecting emulator instances的文档说明进行操作。

答案 1 :(得分:1)

您需要在Windows 7计算机上安装TELNET。为此,请控制面板->程序和功能->打开或关闭Windows功能-> Telnet客户端(必须选中)。

然后,在cmd(命令提示符)中,您可以说adb devices(如果PATH上装有Android SDK),它返回标识符,例如emulator-5554和{{1} }。

现在有了telnet,您可以使用emulator-5556telnet localhost 5554来访问它们。

initial connection

要让他们告诉您它是哪个模拟器,可以键入telnet localhost 5556

但更重要的是,它告诉您以下信息:

avd name

这是一个文本文件,其中包含一些随机的隐秘文本。

您可以将其复制粘贴到telnet中,如下所示:

Android Console: Authentication required
Android Console: type 'auth <auth_token>' to authenticate
Android Console: you can find your <auth_token> in
'C:\Users\[youruser]\.emulator_console_auth_token'
OK

将会显示auth cdPi82HewjZg ,现在您实际上可以运行文档中所述的命令。

after auth

现在你可以说

OK

这意味着:redir add tcp:6000:4000

这意味着您的其他仿真器可以通过将数据发送到6000,而通过if the emulator would receive something to Port 6000 from LocalHost, then it should receive it as 4000魔术环回IP连接到它,而 other 仿真器将通过端口4000接收该仿真器。

no session yet

joined session

它不仅适用于10.0.2.2,而且还适用于tcp:

您可以列出udp:,甚至可以删除redir的重定向。

答案 2 :(得分:0)

可能有两个原因

  1. 根据我的知识,你的运行是&lt; 2.3版本
  2. 添加互联网权限
  3. 首先尝试运行服务器,然后在模拟器号5554和客户端(比方说)5556中运行 然后输入

    telnet localhost 5554