我的机器在 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 的控制台在哪里?
您需要在 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。
| 归档时间: |
|
| 查看次数: |
4076 次 |
| 最近记录: |