您的位置:首页 > 移动开发 > Android开发

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

2012-03-16 17:53 495 查看
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);

如果实现时没有什么错误的话,就可以成功连接了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: