RF-V7100是什么手机模拟器么?

248127 条评论分享收藏感谢收起赞同 4930 条评论分享收藏感谢收起开源夏令营《基于HackRF开发GPS信号仿真模拟器》终期汇报
没有更多推荐了,Android模拟器之间的网络通信及Ping主机
【本机(PC)IP以及Android模拟器IP的说明】
在本机上启动两个模拟器,本机(PC)和模拟器的信息如下:
大家可以看到,两个模拟器的IP地址都是完全一样的,所以要实现两个模拟器之间的通信,使用模拟器的IP地址是办不到的。
获取模拟器名称:
&adb devices
List of devices attached
emulator-5554 device
emulator-5556 device
模拟器提供了一个特殊的IP,此IP的地址为10.0.2.2,此IP地址可以说等同于PC本机的IP地址127.0.0.1
。所以,通过此特殊IP地址,实现PC本机与模拟器的通信是没有问题。
【PC-SERVER / 模拟器-CLIENT】
目的:通过7100端口跟服务器进行通信。
实施方法比较简单,直接按照下面的方法就可以了。
PC-SERVER:
ServerSocket server = new ServerSocket(7100);
模拟器-CLIENT:
Socket socket = new Socket("192.168.1.3", 7100);
PC-SERVER:
ServerSocket server = new ServerSocket(7100);
模拟器-CLIENT:
Socket socket = new Socket("10.0.2.2", 7100);
【模拟器-SERVER / PC-CLIENT】
目的:连接到服务器的7100端口。
实施操作稍微复杂一些,不能按照前面的方法来进行。要达到此目的,先要进行端口映射。
把本机端口TCP/6100映射到模拟器TCP/7100端口(UDP也是一样)。
&adb &s emulator-5554 forward tcp:6100
端口映射成功后,再进行下面的实验。
方法1(正确):
模拟器-SERVER:
ServerSocket server = new ServerSocket(7100);
PC-CLIENT:
Socket socket = new Socket("127.0.0.1", 6100);
方法2(错误):
模拟器-SERVER:
ServerSocket server = new ServerSocket(7100);
PC-CLIENT:
Socket socket = new Socket("192.168.1.3", 6100);
错误原因是127.0.0.1是本机环路IP,跟本机IP没有映射关系,所以发送到本机IP的连接请求,无法映射到127.0.0.1的环路IP上。
由于这个原因,两台PC机上的模拟器之间,是无法进行网络连接的。如果要实现连接,只能在作为服务器的PC上,运行一个用于数据中继的后台程序,进行数据的转发。
【模拟器(5554)-SERVER / 模拟器(5556)-CLIENT】
目的:模拟器(5556)连接到模拟器(5554)的7100端口。
实施操作也相对复杂一些。要达到此目的,也要先进行端口映射。
把本机端口TCP/6100映射到模拟器(5554)TCP/7100端口(UDP也是一样)。
&adb &s emulator-5554 forward tcp:6100
端口映射成功后,再进行下面的实验。
方法1(正确):
模拟器(5554)-SERVER:
ServerSocket server = new ServerSocket(7100);
模拟器(5556)-CLIENT:
Socket socket = new Socket("10.0.2.2", 6100);
原理说明:
模拟器(5556)通过连接10.0.2.2:6100,相当于连接本机(PC)的127.0.0.1:6100,由于本机IP的6100端口进行过端口映射,映射到模拟器(5554)的7100端口。所以,来自模拟器(5556)的连接请求会发送到模拟器(5554)上。实现了两个模拟器之间的网络通信功能。
此方法在本机调试时非常有用。
方法2(错误):
模拟器(5554)-SERVER:
ServerSocket server = new ServerSocket(7100);
模拟器(5556)-CLIENT:
Socket socket = new Socket("192.168.1.3", 6100);
错误原因跟【PC-CLIENT / 模拟器-SERVER】的方法2一样。
原文链接:
Android模拟器Ping主机
众所周之Android模拟器采用的是Qemu,而整个模拟的内核是Linux,虽然没有x-windows界面和bash
shell,但测试下基本的Linux Shell还是没有问题的,今天就在android emulator上玩回ping。
& 首先我们进入cmd或console状态下,使用cd命令进入Android
SDK的Tools命令,可以输入adb
shell这时候,这个时候从&变为了#,现在已经在linux
shell中了,虽然Android平台没有vi这样的编辑器,但是执行些简单的命令比如cd、rmdir、mkdir还是没有问题,我们直接在Android模拟器中测试ping本机,如#
ping localhost,看看返回如图:
[环境相关] 安卓模拟器ping局域网中的其他机器
获取android模拟器ip
&&& public
String getLocalIpAddress() {
&&&&&&&&&&&
&&&&&&&&&&
for (Enumeration&NetworkInterface& en
=NetworkInterface.getNetworkInterfaces();
&&&&&&&&&&&
&en.hasMoreElements();)
&&&&&&&&&&
{&NetworkInterface intf = en.nextElement();
&&&&&&&&&&
&&&&&&&&&&
for (Enumeration&InetAddress&
enumIpAddr = intf.getInetAddresses();
&&&&&&&&&&&&&&&
enumIpAddr.hasMoreElements();)
&&&&&&&&&&
{&InetAddress inetAddress =
enumIpAddr.nextElement();
&&&&&&&&&&&&
if (!inetAddress.isLoopbackAddress()) {
&&&&&&&&&&&&&&&&&&&&&&&
return inetAddress.getHostAddress().toString();
&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&
&&&&&&&&&&&
} catch (SocketException ex) {
&edit_show.append(ex.toString()+"\n");
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。}

我要回帖

更多关于 RF-V7100是什么手机 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信