两个Android模拟器之间的通信

MAK*_*MAK 2 java android

我的机器在 Windows 7 上运行。我想在同一台机器上运行的两个 Android 模拟器之间进行通信。
第一个模拟器正在侦听某个 IP 10.0.2.15 当第二个模拟器尝试创建

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

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

编辑:我已经阅读了https://developer.android.com/studio/run/emulator-networking#connecting但它说

在 B 的控制台上,发出 redir add tcp:8080:80

B 的控制台是什么意思,或者 B 的控制台在哪里?

Epi*_*rce 6

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

然后,在cmd(命令提示符)中,您可以输入adb devices(如果 Android SDK 在您的 PATH 上),这将返回诸如emulator-5554和 之类的标识符emulator-5556

现在,通过 telnet,您可以使用telnet localhost 5554或 来访问它们telnet localhost 5556

初始连接

要让他们告诉您它是哪个模拟器,您可以输入avd name

但更重要的是,它告诉你:

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
Run Code Online (Sandbox Code Playgroud)

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

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

auth cdPi82HewjZg
Run Code Online (Sandbox Code Playgroud)

它会说OK,现在您可以实际运行文档中所说的命令。

授权后

现在你可以说

redir add tcp:6000:4000
Run Code Online (Sandbox Code Playgroud)

意思是:if the emulator would receive something to Port 6000 from LocalHost, then it should receive it as 4000

10.0.2.2这意味着您的其他模拟器可以通过神奇环回 IP 将数据发送到 6000 来连接到它,并且另一个模拟器将通过端口 4000 接收数据。

还没有会话

加入会话

它不仅适用于tcp:,也适用于udp:

您可以redir使用 列出甚至删除重定向redir del