Android模拟器与局域网通信

每个Android模拟设备(后面简称AVD)都有自己独立的网络地址空间,它们之间是互相隔离的。
实际上AVD与当前调试的电脑所在的局域网也是隔离的,AVD可以通过当前调试PC转发,能访问局域网。
AVD的网络地址空间为10.0.2/24,其自身地址为10.0.2.15,PC的地址为10.0.2.2。
实际上,如果用adb shell(或者adb -s 设备名 shell)进入AVD的命令行模式,再使用getprop命令,可以看到
[net.eth0.gw]:10.0.2.2
也就是AVD使用PC作为网关,对目标地址为10.0.2/24地址空间以外的数据进行转发


但实际中有时会碰到比较头疼的事情。
比如运行AVD的PC机所在的局域网地址空间为192.168.0/24,自身的IP为192.168.0.23。现在想通过AVD给
192.168.0/24局域网发送UDP广播,像下面这样直接发肯定是不行的

String msg="Broadcast Message";
byte[] buffer=msg.getBytes();
InetAddress addr=InetAddress.getByName("255.255.255.255");
int port=12345;
DatagramPacket dp=new DatagramPacket(buffer,buffer.length,addr,port);
DatagramSocket ds=new DatagramSocket(port);
ds.send(dp);
这只会将广播发送到10.0.2/24地址空间里


为达到AVD发送广播到192.168.0/24
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值