實現本機2個模擬器之間的網路通訊

2021-06-03 17:29:35 字數 3117 閱讀 5034

【本機

(pc)ip

以及android

模擬器ip

的說明】

在本機上啟動兩個模擬器,本機(

pc)和模擬器的資訊如下:

可以看到,兩個模擬器的

ip位址是完全一樣的,所以要實現兩個模擬器之間的通訊,使用模擬器的

ip位址是辦不到的。

獲取模擬器名稱:

>adbdevices

list ofdevices attached

emulator-5554 device

emulator-5556 device

模擬器提供了乙個特殊的

ip,此

ip的位址為

10.0.2.2

,此ip

位址可以說等同於

pc本機的

ip位址

127.0.0.1

。所以,通過此特殊

ip位址,實現

pc本機與模擬器的通訊是沒有問題。

下面就幾種典型的模式進行說明:

1、【pc—server / 模擬器-client】

目的:通過模擬器中客戶端 跟 pc上的伺服器7100埠進行通訊。

實施方法比較簡單,直接按照下面的方法就行了。

方法1:

//pc—server:

serversocket server = new serversocket(7100);

//模擬器-client

socket socket = new socket("10.1.36.58",7100);

方法2:

//pc-server:

serversocket server = new serversocket(7100);

//模擬器-client:

socket socket = new socket("10.0.2.2", 7100);//模擬器提供的特殊ip位址,此位址等同於本機的ip位址127.0.0.1

2、【模擬器-server / pc-client】

目的:通過pc上的客戶端 跟 模擬器中伺服器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上,執行乙個用於資料中繼的後台程式,進行資料的**。

3、【模擬器

(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一樣。

利用華為eNSP模擬器實現vlan之間的通訊

1.搭建網路拓撲結構 執行ensp 新建拓撲 搭建如下圖的拓撲結構 啟動裝置。利用調色盤將劃分的vlan進行區分。2.pc機ip位址配置 pc1的ip配置如下圖,填寫完相應的位址後最後點選應用按鈕,其他三個pc機的配置同pc1的配置一樣,不在敘述。四台pc機的ip配置如下表 3.測試各pc機之間的連...

思科模擬器的網路訪問控制

管太寬。細化不夠。盡可能遠ip 使用標準訪問控制列表 也就是說,ip訪問控制 檢視訪問控制列表 show access list 全域性配置模式。access list id 1 99 操作 permi deny ip mask access list 3 deny 192.168.1.0 0.0....

基於Qt實現的旅行模擬器

一 設計任務的描述 城市之間有三種交通工具 汽車 火車和飛機 相連,某旅客於某一時刻向系統提出旅行要求,系統根據該旅客的要求為其設計一條旅行線路並輸出 系統能查詢當前時刻旅客所處的地點和狀態 停留城市 所在交通工具 二 功能需求說明及分析 城市總數不少於10個 13個 建立汽車 火車和飛機的時刻表 ...