主机与Android模拟器互相通信

一、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命令 端口数据重定向

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值