小编典典

两个Android模拟器之间的通信

java

我的机器在窗口7上运行。我想
在同一机器上运行的两个android仿真器之间进行通信。
仿真器第一个正在侦听某些IP 10.0.2.15,第二个仿真器尝试
创建IP

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的控制台在哪里?


阅读 350

收藏
2020-11-26

共1个答案

小编典典

您需要在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

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

您可以像这样将其复制粘贴到telnet中:

auth cdPi82HewjZg

到它会说OK,现在你可以实际运行该命令的文件说。

现在你可以说

redir add tcp:6000:4000

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

这意味着您的其他仿真器可以 通过将数据发送到6000通过10.0.2.2魔术
环回IP连接到它,而另一个仿真器将通过端口4000接收它。

2020-11-26