admin管理员组

文章数量:1548489

一、PC电脑不能直接访问Android模拟器系统的原因
Android系统为实现通信将PC电脑IP设置为10.0.2.2,自身为10.0.2.15/127.0.0.1。然而PC电脑并没有为Android模拟器系统指定IP,所以PC只能通过端口重定向来实现和Android模拟器的通信。

二、PC电脑和Android模拟器系统之间通信
1、运行模拟器
2、打开window 命令行,执行:

telnet localhost 5554

5554是模拟器的端口(位于Android模拟器窗口标题栏),执行之后会进入android console
3、验证身份

auth XXXXXXXXX

身份验证令牌可以在下列位置找到:

  • 在 Windows 上,该文件位于您当前的用户文件夹中
c:\Users\<current_user>\.emulator_console_auth_token
  • 在linux上
~/.emulator_console_auth_token 

4、在console下执行:
格式:redir add < udp/tcp >:< pc端口 >:< 模拟器端口 >
例如:redir add udp:2888:2888

redir add tcp:2888:2888

执行此命令之后,会把PC 2888 端口接收到的tcp/udp数据转到模拟器的2888端口。

三、多个Android模拟器系统之间通信
1、启动模拟器emulator-5554和emulator-5556
2、打开dos窗口执行telnet localhost 5554连接到模拟器5554
3、成功连接后,继续执行:redir add tcp:5000:6000将PC端口5000绑定到模拟器5554的端口6000上。
4、此时模拟器5556通过向PC电脑端口5000(即地址:10.0.2.2:5000)发送tcp/udp数据包跟模拟器5554通信。
5、同理根据步骤2、3来实现PC电脑对模拟器5556的端口转发。

添加成功后,我们可以用redir list命令来列出已经添加的映射端口,redir del可以进行删除。

四、从主机网络中其它主机访问Android模拟器
可以通过网络得定向

  • windows

    • 查看所有规则

      netsh interface portproxy show all
      
    • 新增

      netsh interface portproxy add v4tov4 listenaddress=192.168.11.49 listenport=5554 connectaddress=127.0.0.1 connectport=5554
      

      解析:监听192.168.11.49:5554端口的所有数据, 转发到127.0.0.1:5554

    • 删除一条规则

      netsh interface portproxy delete v4tov4 listenport=5554 listenaddress=192.168.11.49
      

      解析:删除监听192.168.11.49:5554端口的规则

  • linux

iptable端口重定向 MASQUERADE

参考

设置 Android 模拟器网络
发送模拟器控制台命令
解决两个 Android 模拟器之间无法网络通信的问题
PC电脑和Android模拟器访问及模拟器之间tcp/udp通信
Windows netsh命令 端口数据重定向

本文标签: 模拟器主机通信android