1、安装调试过程
调试Android socket、udp通信时需要用两台手机,修改测试的时候在真机上安装软件比较花时间,而在模拟器上安装软件很快,可以提高调试效率。开始用AndroidStudio自带的AVD,速度慢且不稳定。从Genymotion官网下载带Virtualbox的Android模拟器安装软件,安装模拟器过程中安装Virtualbox。一开始按照缺省设置,模拟器有IP1、IP2、环路IP地址,A、B的IP1不同,A、B的IP2相同,两个模拟器用IP1做UDP通信,可以互通;做socket通信,连接失败,异常信息java.net.ConnectException:Connection refused。 用1个模拟器、1个真机试验,模拟器做客户端,真机做服务器端,连接成功;模拟器做服务器端,则失败。在网上搜到一个贴,写了用adb forward端口映射命令,将PC机端口影射到模拟器端口,但是没有效果。在CSDN提问区搜到一个问答帖,解答在virtualbox设置虚拟机网络2选择桥接。
模拟器网络--网卡2设置桥接网卡,再启动模拟器,其IP2和PC机的IP地址在一个网段,两个模拟器socket通信可以连接成功。virtualbox中模拟器设置截图如下:
模拟器安装Termux查看网络配置如下图:
转贴问答帖的解答:“Genymotion 网络配置https://blog.csdn.net/a06_kassadin/article/details/42237973”
2、疑问
在模拟器网络的网卡2缺省设置时,为什么A、B UDP能互通,且在termux里面可以ping通对方。而socket连接不上?