作者:李波
实现网络五子棋时用到了两个设备间的Socket通信,如果使用真机调试比较麻烦,用两个模拟器之间进行通信会比较方便。
首先要获得的模拟器的IP地址
在本机上启动两个模拟器,emulator-5554,emulator-5556查看模拟器ip
在命令行窗口输入命令
adb –s emulator-5554 shell
getprop
找到一下两行:
[net.eth0.dns1]: [10.0.2.3]
[net.gprs.local-ip]: [10.0.2.15]
可以发现两个模拟器的IP地址完全一样,都为10.0.2.15,DNS都为10.0.2.3,所以要实现两个模拟器之间的通信,使用模拟器的IP地址是办不到的。
模拟器提供了一个特殊的IP,这个IP地址为10.0.2.2,这个IP地址可以说等同于PC本机的IP地址127.0.0.1,所以,通过这个特殊的IP地址可以进行PC与模拟器之间的通信。
考虑模拟器作为主机的情况:
需要把模拟器的端口映射到PC的端口,通过连接PC端的端口来把请求重定向发送给,模拟器。
1)PC作为客户端,模拟器1为主机
2)模拟器2为客户端,模拟器1为主机
映射PC端口到模拟器端口的命令如下:
>adb –semulator-5554 forward tcp:6665 tcp:6666
映射成功后,连接模拟器的端口6666就要通过连接PC的端口6665进行连接,客户端连接的IP必须为环路IP,不能使用本机IP,如192.168.1.102,因为本机IP跟环路IP没有映射关系,所以发送到本机IP(192.168.1.102)的连接请求无法映射到127.0.0.1的环路IP上,使用PC端程序作为客户端时,环路IP必须使用127.0.0.1,使用模拟器作为客户端时,环路IP使用10.0.2.2,虽然两者是同一个环路IP,但是PC只能识别127.0.0.1,模拟器只能识别10.0.2.2。
3)如果要实现两个模拟器之间的相互通信,就必须每个模拟器都既为Server又为Client,并在PC机上映射为不同的端口。结构图如下
由于PC的本机IP(192.168.1.102)没有映射到环路IP,所以不能在Android真机与模拟器之间或者运行在两台PC的模拟器之间进行Socket通信,如果要实现连接,必须在作为服务器的PC上,运行一个用于数据中继的后台程序,进行数据的转发。
分享到:
相关推荐
做Android开发,模拟器是必备品,而Android模拟器的IP和电脑总不是一个网段的,想要进行测试非常麻烦,甚至很多时候模拟器没有办法连接互联网,本文详细的描述了Android模拟器IP设置的完整步骤。
实现方法:android socket ① 服务程序运行在PC端 ② 客户端程序运行在android模拟器 ...二、 客户端程序需要同样的端口 以及 PC的ip地址进行socket联络 三、 数据通信用进程方式实现,可以支持多个客户端访问
android socket编程实现同一台PC两个模拟器间的通信 包含server和client两个工程,外加一个说明文档,绝对可用 希望对大家有用
Android及avd模拟器ip设置详细操作说明,参考参考
Android 模拟器永久root工具------包含 (android for img.rar、Android SU文件更新包.zip、RootExplorer.apkSuperuser.apk) 1、用android for img.rar里的android for img.exe打开 E:\SDK\platforms\android-8\...
此文档介绍了Android模拟器在一台机器上的通信,或者PC与Android平台通信的方法。
android模拟器java Androidandroid模拟器java Androidandroid模拟器java Androidandroid模拟器java Androidandroid模拟器java Androidandroid模拟器java Androidandroid模拟器java Androidandroid模拟器java Android...
Android模拟器入门Android模拟器入门Android模拟器入门Android模拟器入门Android模拟器入门Android模拟器入门Android模拟器入门
Android模拟器躲避的检测与应对,介绍模拟器检测的主要方法
Android模拟器安装教程以及Android2.2模拟实测 希望对大家有所帮助
如何修改Android模拟器的IMSI,简单方法。
用于Androidstudio模拟器的系统签名,方便进行需要系统签名方面的调试,内含一个生成的platform.jks和系统签名源文件(.pk8和x509.pem等等) ,拿到源文件你也可以自己生成jks或者keystore。 内含jks签名信息: Key ...
android系统签名,模拟器可用,用法见readme
Android 模拟器建立端口映射讲解 redir Android 模拟器建立端口映射
最近做毕业设计的时候遇到了android模拟器之间相互发短信的问题 我研究了很久查询了一些资料最后终于搞定了下来 写了代码供大家分享。
关于android模拟器启动时遇到的问题进行解决~
Android模拟器参数 emulator启动设置 Android 模拟器 参数 emulator Google
用VNC远程控制android模拟器用VNC远程控制android模拟器
在android模拟器中安装APK文件说明 。
Android 模拟器如何访问本地网页和获取浏览器