Android筆記:模擬器之間的Socket通訊

來源:互聯網
上載者:User

android項目最近開始用到socket通訊,而2個模擬器之間通訊需要藉助ADB實現,這裡瞭解下ADB。

ADB是什麼:

ADB的全稱為Android Debug Bridge,就是調試橋的作用,藉助這個工具,我們可以管理裝置或手機模擬器的狀態。個人理解就是可以在pc上通過命令列查看和管理安卓裝置,例如串連到電腦的安卓手機等。比較方便的是可以直接通過命令列操作。

常見操作:

(1)快速更新裝置或手機模擬器中的代碼,如應用或Android系統升級;
(2)在裝置上運行Shell命令;
(3)管理裝置或手機模擬器上的預定連接埠;

(4)在裝置或手機模擬器上複製或粘貼檔案。

詳細參考:Android的ADB工具使用

因為需要在2個模擬器之間通訊,這裡我們啟動2個模擬器,通過adb查看2個模擬器的狀態和IP連接埠地址等資訊。

在命令列中直接輸入“adb”命令提示無法識別,來到SDK的Tools檔案夾下,發現存在一個“adb_has_moved.txt”檔案提示adb被移除了,百度後發現該adb在新版本中已經移動到了“platform-tools”目錄下,果然在platform-tools目錄下找到了該adb,在環境變數Path中加入該路徑。

 然後命令列中執行adb命令就可以識別了:

OK 先一步使用ADB查看模擬器當前配置狀況

 啟動2個模擬器api版本都是10(plat版本2.3.3) 5554運行socket服務端 5556運行socket用戶端

首先進入emulator5554裝置的命令控制台

在命令列中輸入如下指令

adb –s emulator-5554 shell

getprop

在結果中找到以下2行“

[net.eth0.dns1]: [10.0.2.3]

[net.gprs.local-ip]: [10.0.2.15]

exit退出shell

如上繼續查看emulator5556的ip配置會發現二者完全相同,那麼如何進行通訊呢

Android系統為實現通訊將PC機IP設定為了10.0.2.2,自身為10.0.2.15/127.0.0.1,所有安卓虛擬機器預設是可以通過10.0.2.2本機連網。

如果需要修改dns可以執行

setprop net.dns1 192.168.0.1 

那麼IP如何修改呢?二者的IP完全相同是無法通訊的:

據資料顯示可以通過件連接埠映射到本機間接實現 (參考 PC電腦和Android模擬器訪問及模擬器之間tcp/udp通訊 )

1. 運行模擬器
2. 開啟window 命令列    

5554是模擬器的連接埠,執行之後會進入android console
telnet 127.0.0.1  5554 

  或者

telnet localhost  5554 

3. 在console下執行:

redir add udp :連接埠號碼:連接埠號碼

或

redir add tcp :連接埠號碼:連接埠號碼  

例如:   

redir add tcp:8888:8888

 其中,第一個連接埠號碼是PC連接埠,第二個是模擬器連接埠。(連接埠映射)

   執行此命令之後,會把PC8888 連接埠接收的資料轉到模擬器的8888連接埠

redir :連接埠定向指令 

add :添加 

tcp/udp:表示連接埠類型tcp、udp 

通訊代碼案例參考:

http://blog.163.com/fanning_7213/blog/static/2496505201137101721665/

 

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.