本机两个Android模拟器之间的网络通信

 

【本机(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端口跟服务器进行通信。

实施方法比较简单,直接按照下面的方法就可以了。

方法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一样。

时间: 2024-11-01 14:51:02

本机两个Android模拟器之间的网络通信的相关文章

Android 开发之旅:短信的收发及在android模拟器之间实践(二)

引言 前面我们介绍都只是如何发送SMS消息,接下来我们介绍如何接收SMS消息,及另一种发短信的方式并增强为可以发生图片等,最后介绍一下emulator工具.本文的主要内容如下: 1~5见Android 开发之旅:短信的收发及在android模拟器之间实践(一) 6.温故知新之Intent 7.准备工作:SmsMessage类 8.SMS接收程序 9.另一种发送短信的方式:使用Intent 10.增强SMS为MMS 6.温故知新之Intent 此系列前面简单地接受过意图(Intent),这里再次简

使用IP地址在两个android手机之间如何通讯?

问题描述 使用IP地址在两个android手机之间如何通讯? 3g连接的基础上,能否可以分别查询200个android手机的IP地址? 能否直接使用IP 地址进行TCP通信吗? 希望大家给点建议,谢谢! 解决方案 直接P2P是不行的,因为移动上网时,是先连到运营商(如联通)的大局域网再通过网关转到公网,手机分配的IP是10.xx.xx.xx,并不是公网IP,你从外面查手机的IP都是运营商网关IP.而且两台手机也不一定在同一局域网段,也就不能保证直接互联能一定成功.解决办法还是像QQ一样,搞个服务

传感器-两部Android手机之间通信方式

问题描述 两部Android手机之间通信方式 1.两部Android手机之间建立通信使用哪种方式较好? 2.建立通信之后,如何从其中一部手机获取另外一部手机的传感器信息? 解决方案 使用socket通讯 解决方案二: socket通信,蓝牙通信 解决方案三: Android组件之间的通信方式 解决方案四: BlueTooth或者IM

多个Android模拟器之间如何进行通信

Android模拟器的网络配置和普通的手机不同,每个模拟器都自动分配为10.0.2.15的IP,既无法直接和外部通信,同一个PC上的多个模拟器之间也无法直接进行通信.本章简单介绍一下模拟器的网络布局,和如何通过将端口进行重定向来实现模拟器之间的通信. 的通信也要通过一个网络的中转才能完成 首先看一下Emulator的网络配置图 从图中我们看出每个模拟器的IP都是10.0.2.15,而它所运行在的PC机的IP地址是10.0.2.2,我们就可以通过PC来打开缺口. 比如我们把模拟器M1的端口5100

eclipse启动两个android模拟器

废话不多说直接上图 首先在Andriod Virtual Device Manager中新建两个虚拟设备VPHONE和VPHONE-DOUBLE 准备两个andriod程序,运行其中一个程序,系统会自动启动一个虚拟设备,当运行第二个andriod程序时会弹出Andriod Device Chooser对话框,这里我们选择一个新设备 两台虚拟设备同时运行的效果图如下,可以模拟两台虚拟手机之间的通信了,是不是很嗨    Dalvik Debug Monitor Server(DDMS)是主要的And

PC电脑和Android模拟器访问及模拟器之间tcp/udp通信

Android系统默认只能通过IP(10.0.2.2)单向访问PC电脑,而PC电脑不能通过IP来直接访问Android模拟器系统.要想实现PC电脑和Android模拟器系统以及Android模拟器之间相互通信必须借助端口重定向(redir)来实现. 先说说端口重定向所需要的telnet客户端安装: windows: 安装telnet客户端.如果没有安装,可以在windows程序管理中的打开或关闭系统功能下找到telnet客户端菜单项来启用telnet客户端功能. linux: 自行安装telne

Android开发时在模拟器之间短信的收发详解教程

本文通过运行两个Android模拟器,介绍在Android中如何实现短信服务(SMS,short message service)的功能.通过这个例子,我想带给大家的是:更加熟悉之前介绍过的Android应用程序的概念及技术细节,且通过实例调度大家的兴趣.我之所以选择SMS为例子,主要原因是SMS已经非常成熟了,从中可以发掘更多的信息和技术细节,而且我相信大部分人发短信比打电话多. 1.温故知新 广播接收者:一个广播接收者是这样一个组件,它不做什么事,仅是接受广播公告并作出相应的反应.许多广播源

android模拟器与PC的端口映射(转)

阅读目录 一.概述 二.实现步骤 回到顶部 一.概述 Android系统为实现通信将PC电脑IP设置为10.0.2.2,自身设置为127.0.0.1,而PC并没有为Android模拟器系统指定IP,所以PC电脑不能通过IP来直接访问Android模拟器,要实现PC机和Android模拟器之间的相互通信必须借助于端口重定向(redir). 回到顶部 二.实现步骤 1.安装telnet 什么是telnet? Telnet协议是TCP/IP协议族的一员,是Internet远程登录服务的标准协议和主要方

Android 模拟器的使用详细介绍_Android

让我们一起学习一下模拟器的使用. 本文内容如下: 模拟器和真机的比较 创建Android模拟器(emulator) 运行Android模拟器 设置简体中文语言界面 模拟手机拨打电话和发送短信的功能 源代码:本讲没有代码 1.模拟器和真机的比较 android模拟器不具备的功能: 不支持呼叫和接听实际来电:但可以通过控制台模拟电话呼叫(呼入和呼出) 不支持USB连接 不支持相机/视频捕捉 不支持音频输入(捕捉):但支持输出(重放) 不支持扩展耳机 不能确定连接状态 不能确定电池电量水平和交流充电状