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

相關文章
相關標籤/搜索