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

Android模拟器的网络配置和普通的手机不同,每个模拟器都自动分配为10.0.2.15的IP,既无法直接和外部通信,同一个PC上的多个模拟器之间也无法直接进行通信。本章简单介绍一下模拟器的网络布局,和如何通过将端口进行重定向来实现模拟器之间的通信。

的通信也要通过一个网络的中转才能完成

首先看一下Emulator的网络配置图

从图中我们看出每个模拟器的IP都是10.0.2.15,而它所运行在的PC机的IP地址是10.0.2.2,我们就可以通过PC来打开缺口。

比如我们把模拟器M1的端口51000暴露给其他模拟器,那么可以通过下面的命令来

telnet localhost 5444

在登录的界面中输入下面的命令

redir add tcp:50000:51000

执行成功以后,我们就可以通过连接 10.0.2.2:50000端口来转接到M1的51000端口。

比如我们进行简单的socket连接如下,

M1作为服务器监听在51000端口:

                ServerSocket server = new ServerSocket();
                SocketAddress saEndPoint = new InetSocketAddress("10.0.2.15", 51000);    
                Log.d(TAG, "Server bind endpoint :" + saEndPoint);
                server.bind(saEndPoint);

M2作为客户端去连接M1

              Socket clientSocket = new Socket();

             clientSocket.connect(new InetSocketAddress("10.0.2.2", 50000), 1000);

如果实现时没有什么错误的话,就可以成功连接了。

时间: 2024-09-10 06:28:42

多个Android模拟器之间如何进行通信的相关文章

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模拟器之间实践(二)

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

本机两个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本

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

模拟器与pc通讯-android模拟器与pc的相互通信

问题描述 android模拟器与pc的相互通信 我现在再能实现模拟器联系pc,pc作为服务器被动的做出反应.不能实现pc发消息给模拟器.那要如何实现相互的通信呢 代码如下: package com.example.socket_android; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.InputStreamReader; import java.io.OutputStreamWrit

android和js之间的bridge通信原理是什么

问题描述 android和js之间的bridge通信原理是什么 android webview和js之间的bridge通信原理是什么,最近只是简单的用到github上的一个库,请大神帮忙解答下. 解决方案 不是webview 吗 解决方案二: 没怎么研究过这个问题,

Android Fragment与Activity之间的相互通信实例代码_Android

Android Fragment与Activity之间的相互通信 前言 自从Android3.0引入Fragment之后,主要是为了支持动态灵活的界面设计和屏幕的适配问题.Fragmenty不能单独存在,必须依赖Activity作为视图展示的一部分,同事它具有自己的生命周期,接收它自己的事件,具有更加灵活的特性,如今Fragment已经被广泛的应用到App开发中,最常见的就是单Activity多Fragment的模式.Fragment依赖于Activity而存在,就不可避免需要与Activity

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

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