TCPpc机与模拟器及模拟器之间通讯

        进行TCP通讯的时候本机上启动两个模拟器,本机(PC)和模拟器时发现两个模拟器的IP地址都是彻底同样的,因此要实现两个模拟器之间的通讯,使用模拟器的IP地址是办不到的。必须进行端口映射。socket

    模拟器提供了一个特殊的IP,此IP的地址为10.0.2.2,此IP地址能够说等同于PC本机的IP地址127.0.0.1 。因此,经过此特殊IP地址,实现PC本机与模拟器的通讯是没有问题。tcp

首先 ,运行模拟器在命令行adb –s emulator -模拟器  forward  tcp:端口号 tcp:端口号(例如:adb –s emulator-5554 forward tcp:8080 tcp:8090)spa

PC-SERVER:ServerSocket server = new ServerSocket(8080);命令行

模拟器-CLIENT:Socket socket = new Socket("10.0.2.2", 8090);server

接下来是如何在两个模拟器之间进行通讯:一样的先进行端口映射:adb –s emulator -模拟器  forward  tcp:端口号 tcp:端口号(先运行模拟器).代码以下:ci

adb –s emulator-5554 forward tcp:8080 tcp:8081ast

模拟器(5554)-SERVER:ServerSocket server = new ServerSocket(8080);请求

模拟器(5556)-CLIENT:Socket socket = new Socket("10.0.2.2", 8081);通信

由于模拟器5556链接的地址10.0.2.2:8080至关于本机的127.0.0.1:8080,因为进行了端口映射本机IP8080上的链接请求都映射到5554:8081上,所以模拟器5556的请求会发送到5554上.db

相关文章
相关标签/搜索