环境:因开发需要,使用UDP接收大量数据,使用物理机能正常接收,但是模拟器不行。度娘一翻,得到以下结果(实测无效):
解决方法:
1. 运行模拟器
2. 打开window 命令行
执行:telnet localhost 5554
5554是模拟器的端口,执行之后会进入android console
3. 在console下执行:
redir add udp:22221:22221
基本上千篇一律转载,试了Android Studio自带的模拟器,Genymotion,夜神,雷电都不行。执行不了上述命令,打开telnet要么连接不上,要么redir未知(可能和版本有关系,毕竟上述教程是多年以前的)
后来想了想,雷电模拟器有tcp转发命令forward,有没有udp转发呢,结果:没有!
基于现在大部分模拟器都是基于virtaulbox之上,virtaulbox是有模拟网卡的,后来想通过网络桥接,那应该是可以的。刚好在雷电模拟器设置发现有这个功能。设置一下,重启即可。
然后,路由器会单独分配给模拟器一个独立的IP,这样就可以接收UDP数据包了。双可以在模拟器上开心的开发,测试啦!


本文链接:https://it72.com:4443/12709.htm