无情剑ol用电脑玩,ke模拟器能用的ip,谁给我发个ip,谢谢

android模拟器与pc,模拟器与模拟之间用socket进行通信和获得模拟器ip地址程序 - CSDN博客
android模拟器与pc,模拟器与模拟之间用socket进行通信和获得模拟器ip地址程序
一、PC电脑和Android模拟器访问及模拟器之间tcp/udp通信
Android系统默认只能通过IP(10.0.2.2)单向访问PC电脑,而PC电脑不能通过IP来直接访问Android模拟器系统。要想实现和Android模拟器系统以及Android模拟器之间相互通信必须借助端口重定向(redir)来实现。
先说说端口重定向所需要的telnet客户端安装:
安装telnet客户端。如果没有安装,可以在windows程序管理中的打开或关闭系统功能下找到telnet客户端菜单项来启用telnet客户端功能。
自行安装telnet客户端。
一、PC电脑不能直接访问Android模拟器系统的原因
Android系统为实现通信将PC电脑IP设置为10.0.2.2,自身为10.0.2.15/127.0.0.1。然而PC电脑并没有为Android系统指定IP,所以PC只能通过端口重定向来实现和Android模拟器的通信。
二、PC电脑和Android模拟器系统之间通信
1、运行模拟器
2、打开window 命令行,执行:
telnet localhost 5554
5554是模拟器的端口(位于Android模拟器窗口标题栏),执行之后会进入android console
3、在console下执行:
格式:redir add & udp/tcp
&:& pc端口 &:& 模拟器端口
例如:redir add udp:
& & &redir add tcp:
执行此命令之后,会把PC 2888 端口接收到的tcp/udp数据转到模拟器的2888端口。
三、多个Android模拟器系统之间通信
1、启动模拟器emulator-5554和emulator-5556
2、打开dos窗口执行telnet localhost 5554连接到模拟器5554
3、成功连接后,继续执行:redir add tcp:将PC端口5000绑定到模拟器5554的端口6000上。
4、此时模拟器5556通过向PC电脑端口5000(即地址:10.0.2.2:5000)发送tcp/udp数据包跟模拟器5554通信。
5、同理根据步骤2、3来实现PC电脑对模拟器5556的端口转发。
添加成功后,我们可以用redir list命令来列出已经添加的映射端口,redir del可以进行删除。
相信只要理解了PC电脑和Android模拟器系统之间通信,便知道怎么实现多个模拟器之间通信。
&在本机上启动两个模拟器,本机(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端口跟服务器进行通信。
& & & & 实施方法比较简单,直接按照下面的方法就可以了。
& & & & 方法1:
& & & & PC-SERVER:ServerSocket server = new ServerSocket(7100);
& & & & 模拟器-CLIENT:Socket socket = new Socket(&192.168.1.3&, 7100);
& & & & 方法2:
& & & & 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 tcp:7100
& & & & 端口映射成功后,再进行下面的实验。
& & & & 方法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 tcp:7100
& & & & 端口映射成功后,再进行下面的实验。
& & & & 方法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&);
本文已收录于以下专栏:
相关文章推荐
获取android模拟器的IP地址 1、在cmd中查看加载的设备,输入2、使用 adb -s [设备] [命令]执行命令shell后,进入linux shell。然后使用get...
原文链接:http://weizhulin./704/
知道大家是否想试一下用Android模拟器如何访问自己建的Web站点呢? 下...
PS:这篇文章来自/blog/1744031,因为学习需要,记录在此!
在本机上启动两个模拟器,本机(PC)和模拟器的信息如下:
1、首先启动两个emulator,一个作为服务器,一个做为客端,在作为服务器的emulator中做适当配置。
emulator的创建就不说了,自己参考相关资料。
执行adb devices
/sikaodelang@126/blog/static//
前面的范例,示范了如何通过程序拨打电话,在G...
Android模拟器的ip获取以及模拟器之间socket通信
作者:李波
实现网络五子棋时用到了两个设备间的Socket通信,如果使用真机调试比较麻烦,用两个模拟器之间进行通信会比...
作者:李波
实现网络五子棋时用到了两个设备间的Socket通信,如果使用真机调试比较麻烦,用两个模拟器之间进行通信会比较方便。
首先要获得的模拟器的IP地址
在本机上启动两个模拟器,emu...
实现网络五子棋时用到了两个设备间的Socket通信,如果使用真机调试比较麻烦,用两个模拟器之间进行通信会比较方便。
首先要获得的模拟器的IP地址
在本机上启动两个模拟器,emulator-5554...
我是安装虚拟机然后安装XP 系统,在这里假设你的系统上面什么工具都没有。那么就先去下载WinCE5.0和VS2005,下载后安装,最后还要从微软的网站上下载ActiveSync4.5或更高版本都行。
...
他的最新文章
讲师:吴岸城
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)}

我要回帖

更多关于 ke模拟器能用的ip 的文章

更多推荐

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

点击添加站长微信