999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于TCP協議的Android模擬器間通信在教學中的應用研究

2018-12-20 08:50:46許姍姍
長春師范大學學報 2018年12期
關鍵詞:程序

許姍姍

(廈門軟件職業技術學院,福建廈門 361000)

1 研究背景

隨著科技的迅速發展,移動網絡以及智能手機的普及讓人們的生活發生了巨大的變化。Android網絡開發就是實現不同終端之間的通信,其中一個應用就是把復雜的數據操作運算放在計算機終端,來實現手機的高功能運行[1]。

目前,基于TCP/IP協議的Socket通信是廣泛應用的通信協議之一。基于TCP/IP協議的Socket通信,是通過指定IP地址和port號,采用c/s模式建立TCP協議下的兩個通信進程間的連接,實現可靠的雙向通信[2]。生活中越來越多的廠商會將物聯網技術與智能硬件組合在同一個局域網內,由網關通過指令統一控制智能硬件。例如,火焰報警信息傳遞、監控點的智能相機等平臺,就是采用高實時性的基于TCP協議的Socket通訊技術,將傳感器數據實時送達。人們平常使用的網絡聊天程序、迅雷下載程序等都需要用到Socket通信技術。

國內外對于Socket的研究主要包括基于TCP/IP協議關于Socket通信程序的研究、Sokcet的網絡編程研究與實現等,現在已取得了較為成熟的成果[3]。但在教學中經常遇到了以下的問題:在使用Android studio開發環境下,開發兩個APP,如果將它們各自部署到運用Android系統的手機上,在同一個Wi-Fi下是可以成功通信的。但在課堂上這樣操作會比較麻煩,通常學生很少攜帶兩部手機。如果能快速地將這兩個APP發布到同一臺電腦的不同Android模擬器上進行通信,則會既簡單又高效,這是本文研究的主要思路。

2 基于TCP協議的Socket通信機制

TCP/IP協議為傳輸控制協議/因特網互聯協議,是Internet最基本的協議,也是Internet國際互聯網絡的基礎,由網絡層的IP協議和傳輸層的TCP協議組成[4]。Socket定義了一些規范,我們只需要遵循Socket的規定去編程即可。

Socket是應用層與TCP/IP協議簇通訊的中間抽象層,Socket是一組接口,通常被稱作“套接字”[5]。簡單來說,Socket提供了程序內部與外界通信的端口,并為通信雙方提供了數據傳輸通道[6]。基于Sokcet的網絡編程的主要操作流程如下:

2.1 套接字服務端的具體流程

(1)調用類ServerSocket的ServerSocket(int aport)方法創建一個ServerSocket對象,并綁定到指定端口。(2)調用accept()方法,監聽連接請求,如果客戶端請求連接,則接受連接,并返回一個Socket對象。(3)通過Socket對象的getInputStream()和Socket對象的getOutputStream()方法獲得輸出流和輸入流,程序開始進入數據的接收和發送[7]。(4)關閉流、ServerSocket對象及Socket對象。

2.2 套接字客戶端的具體流程

(1)調用Socket(InetAddress dstAddress,int dstPort)創建一個Socket對象,并連接到服務器端。(2)通過Socket對象.getInputStream()和Socket對象.getOutputStream()方法獲得輸出流和輸入流,開始進入數據的接收和發送。(3)關閉流和Socket對象。

套接字客戶端與服務端通信的具體流程圖如1所示。

圖1 套接字客戶端與服務端通信的流程圖

3 模擬器間通信需要解決的問題

計算機之間可以通過IP地址進行通信,IP地址都是唯一的。Android模擬器提供了一個特殊的IP地址10.0.2.2,如果同一臺計算機開啟了兩個Android模擬器,那這兩個模擬器的IP是一樣的,都是10.0.2.2。而IP相同的兩臺模擬器間如何通信是我們需要解決的問題。經過研究,通過端口重定向技術,可實現Android模擬器之間的通信。端口重定向技術的具體操作如下:

(1)先在“我的電腦”右鍵屬性,進入“高級系統設置”,選擇“高級”選項卡,進入“環境變量”,選擇系統變量名Path,將SDK中platform-tools所在的路徑復制粘貼進去。如圖2所示。

圖2 在系統變量Path中添加SDK的platform-tools所在路徑

(2)啟動兩個Android Studio自帶的模擬器,假設一個為emulator-5554,另一個為emulator-5556。將emulator-5554設定為服務器,將emulator-5556設定為客戶端。Android的模擬器有個特點,就是程序訪問網絡的時候只可以從模擬器連接到外界,但是卻無法從外界連接模擬器。用戶想要從外界連接上模擬器,需要將端口重定向[8]。首先在cmd中執行命令Telnet localhost 5554,遠程登錄服務器,如果提示該命令無效,則要進入控制面板,單擊“程序和功能”類別,打開“Windows功能”對話框,勾選“Telnet客戶端”組件,具體操作如圖3所示。

圖3 打開Telnet客戶端

接著重新執行命令Telnet localhost 5554,命令行窗體提示“正在連接localhost...”,這樣就可以遠程登錄服務器,出現一個標題為“Telnet localhost”的窗體,如圖4所示。

圖4 遠程登錄服務器

接下來輸入命令“help”,查看列表中是否有“redir”命令,如果沒有,則必須進行身份認證,方法很簡單,只需通過上面窗體中的“C∶UsersAdministrator。emulator_console_auth_token”這串路徑找到對應文件,復制文件中的字符串,通過命令“auth字符串”,就能通過認證,如圖5所示。

圖5 通過命令“auth字符串”進行身份證

最后再次輸入命令“help”,就能在列表中看到“redir”命令。輸入命令“redir add tcp∶1112∶1111”,即可完成端口重定向,如圖6所示。其中,1112是客戶端new Socket(“10.0.2.2”,1112)的端口,1111是服務端new ServerSocket(“1111”)的端口。完成這步端口重定向后,外界也可以連接上模擬器,即模擬器emulator-5556可以連接上emulator-5554了。

圖6 使用“redir”命令進行端口重定向

4 模擬器間通信的具體應用

創建兩個Android應用程序:一個作為服務端程序;一個作為客戶端程序。

(1)服務端程序關鍵代碼如下:

serverSocket=new ServerSocket(1111);//綁定到指定端口

Log.i("ServerActivity","服務器啟動了");

socket=serverSocket.accept();//等待Socket請求,直到連接被打開。

Log.i("ServerActivity","有客戶連接到服務器");

服務端綁定到指定的端口為1111,當用戶點擊按鈕、啟動服務端后,程序執行ServerSocket對象的accept()方法,監聽連接請求,如果客戶端請求連接,則服務端接受連接,并返回一個Socket對象。建立連接后程序通過socket.getOutputStream()和socket.getInputStream()進行數據的傳輸。

(2)客戶端程序關鍵代碼如下:

socket=new Socket("10.0.2.2",1112);//以本機另一個模擬器為服務端,則IP地址是10.0.2.2。

客戶端綁定到指定的端口為1112,連接到本地的模擬器的IP為10.0.2.2。當用戶點擊按鈕,客戶端連接上服務器后,程序就可以通過socket.getOutputStream()和socket.getInputStream()進行數據的傳輸。

這里需要將模擬器的端口進行重定向,使用命令“redir add tcp∶1112∶1111”,具體用法上文有詳細說明。運行程序,將服務端程序運行在模擬器emulator-5554上,將客戶端程序運行在模擬器emulator-5556上。點擊服務端界面的“啟動服務端程序”按鈕,客戶端界面會顯示“服務端:我已經啟動了”字樣,點擊客戶端界面的“連接服務端程序”按鈕,服務端界面會顯示“客戶端:我已連接上你了”字樣,這時表明服務端和客戶端已連接成功,可以進行通信了。運行效果如圖7和圖8所示。

圖7 服務端界面

圖8 客戶端界面

5 結語

本文運用端口重定向技術實現了同一臺計算機上兩個Android模擬器間的通信,通過端口重定向技術使外界也能連接上模擬器。在教學中可以直接將應用程序部署到模擬器上進行網絡通信,解決了課堂上沒有太多真機可用于測試的問題,同時還可以應用于初創企業。目前運用Android系統的手機機型眾多,系統版本多,保證應用程序的兼容性是在應用上架前必做的測試之一。而兼容性測試對于網絡開發的初創企業而言是一大難題,可使用本文提出的模擬器間通信的方法先進行通信測試,再到一些網站上進行兼容性測試(例如,WeTest平臺就提供了移動端測試服務)。

猜你喜歡
程序
給Windows添加程序快速切換欄
電腦愛好者(2020年6期)2020-05-26 09:27:33
試論我國未決羈押程序的立法完善
人大建設(2019年12期)2019-05-21 02:55:44
失能的信仰——走向衰亡的民事訴訟程序
“程序猿”的生活什么樣
英國與歐盟正式啟動“離婚”程序程序
環球時報(2017-03-30)2017-03-30 06:44:45
基于VMM的程序行為異常檢測
偵查實驗批準程序初探
我國刑事速裁程序的構建
創衛暗訪程序有待改進
中國衛生(2015年3期)2015-11-19 02:53:32
恐怖犯罪刑事訴訟程序的完善
主站蜘蛛池模板: 亚洲精品在线影院| 精品国产aⅴ一区二区三区| 精品国产一区91在线| 日韩色图在线观看| 日本91在线| 狠狠五月天中文字幕| 中文字幕人妻av一区二区| 国产黄色视频综合| 成人av专区精品无码国产| 成年人福利视频| 毛片三级在线观看| 大香伊人久久| 国产免费久久精品99re不卡| 欧美中文字幕一区| 国产电话自拍伊人| 日韩久久精品无码aV| jijzzizz老师出水喷水喷出| 日韩黄色大片免费看| 中文字幕资源站| 欧美成人免费一区在线播放| 欧美无遮挡国产欧美另类| 99久久性生片| 91色综合综合热五月激情| 欧美有码在线观看| 天堂在线视频精品| 91成人在线观看| 国产自无码视频在线观看| 国产剧情国内精品原创| 亚洲国产日韩在线观看| 热思思久久免费视频| 亚洲水蜜桃久久综合网站| 狠狠做深爱婷婷久久一区| 欧美精品亚洲精品日韩专| 伊人久久精品无码麻豆精品| 精品天海翼一区二区| 青青青国产精品国产精品美女| 久久精品人人做人人爽| 尤物午夜福利视频| 波多野结衣久久高清免费| 国产成人亚洲综合a∨婷婷| 精品国产一区91在线| 国产在线98福利播放视频免费| 国产成人三级| 亚洲a免费| 97免费在线观看视频| 内射人妻无套中出无码| 国产成人精品一区二区三区| 丰满人妻中出白浆| 99视频在线免费观看| 91麻豆国产精品91久久久| www.youjizz.com久久| 人妻无码AⅤ中文字| 欧美成人aⅴ| 亚洲日产2021三区在线| 久久黄色一级视频| 无码福利日韩神码福利片| 亚洲综合九九| 毛片网站在线播放| 成人国产一区二区三区| 国产女人在线观看| 色老二精品视频在线观看| www成人国产在线观看网站| 色窝窝免费一区二区三区| 黄色网在线免费观看| 精品国产成人高清在线| 精品国产免费观看| 在线观看免费人成视频色快速| 国产乱论视频| 国产精品亚洲专区一区| 97超爽成人免费视频在线播放| 欧美精品亚洲日韩a| 老熟妇喷水一区二区三区| 在线99视频| 欧美精品在线看| 狠狠久久综合伊人不卡| 夜夜操国产| 四虎永久在线精品影院| 日本午夜影院| 99久久精品国产麻豆婷婷| 免费人成黄页在线观看国产| 中文字幕第4页| 五月天天天色|