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

基于Android平臺的即時通信系統設計

2015-04-12 00:00:00雷文禮等
現代電子技術 2015年3期

摘 要: 隨著Internet與移動通信的飛速發展及相互融合,通過無線網絡高速接入到Internet成為現實,即時通信軟件作為一種便捷的網絡通信工具,其應用范圍從單純的網絡聊天工具逐漸變成工作生活所不可缺的信息交流平臺。采用Socket網絡編程設計,在Android平臺下實現了基于TCP/IP協議的網絡通信系統。實驗測試證明,系統運行正常,可以實現在Android平臺上的即時通信功能。

關鍵詞: Android; 即時通信; 網絡; Socket

中圖分類號: TN915.4?34 文獻標識碼: A 文章編號: 1004?373X(2015)03?0013?03

Design of instant communication system based on Android platform

LEI Wen?li, REN Xin?cheng, ZHANG Dong, GAO Ying

(College of Physics and Electronic Information, Yan’an University, Yan’an 716000, China)

Abstract: With the rapid development and mutual fusion of Internet and mobile communication, it comes true for the network communication system to access the Internet through high?speed wireless network. As a kind of convenient network communication tool, the instant messaging software has gradually turned into indispensable platform for the exchange of information in work and life from the simple network chat tool. The network communication system based on TCP/IP protocol was realized on the platform of Android, which uses the Socket network programming. The experiment and testing show that the system runs well, and can achieve real?time communication function on Android platform.

Keywords: Android; instant communication; network; Socket

0 引 言

隨著移動通信技術的快速發展,人們對移動終端的功能需求也日益增高。即時通信軟件作為網絡用戶通信交流不可或缺的工具,從單純的網絡聊天工具逐漸變成工作生活的信息交流平臺,即時通信的用戶規模也呈現出快速增長的趨勢[1]。本文采用Socket網絡編程設計,在Android平臺下實現了基于TCP/IP協議的網絡通信系統。本系統的設計方案為后期相關通信系統設計提供了部分技術參考,并具有一定的應用價值[2]。

1 Android平臺

Android是一個由Linux+Java構成的開源的移動設備軟件平臺,它是基于Linux內核的系統,具有良好的可移植性 [3?4]。Android平臺的框架結構從上至下包含了五個部分:應用程序(Applications)、應用框架(Application Framework)、開發庫(Libraries)、運行時環境(Android Runtime)以及Linux內核(Linux Kernel),可方便地為應用程序提供系統調用,為應用程序的開發提供了便利。

2 系統設計

Android系統中的網絡通信可以通過四種方法實現:

(1) 可以調用JDK中的相關網絡通信的API函數[5]實現。

(2) 基于ServerSocket和Socket方法創建TCP/IP協議的網絡通信。

(3)通過DatagramSocket和MulticastSocket創建UDP協議的網絡通信。

(4)通過JDK中提供的URL等網絡通信API來實現,這種方法采用在Android系統內置HTTPClient,發送HTTP請求,獲取HTTP響應的方式使得通信得以實現。

本文采用上述第(2)種方法實現網絡通信。

2.1 用ServerSocket創建TCPClient

在系統中,服務器端通過ServerSocket類監聽是否有客戶端發出Socket連接請求,若沒有,則一直處于等待狀態;若有,則進行后續相應操作。ServerSocket類通過Socket accept()函數實現監聽網絡中客戶端的連接請求[6]。

Socket accept()函數,如果監聽到有客戶端發出的Socket連接請求,則連接;若沒有監聽到,則進入等待狀態。

ServerSocket類通過以下幾個構造器來創建ServerSocket對象:

(1) ServerSocket(int port)函數,通過指定的某一個端口port號創建一個ServerSocket。端口號的有效數字在0~65 535之間。

(2) ServerSocket(int port,int backlog)函數,在參數中增加backlog,可以用來改變隊列長度。

(3) ServerSocket(int port,int backlog,InetAddress localAddr)函數,在參數中增加InetAddress和localAddr,用于在機器存在多個IP地址的情況下,將其綁定到指定的IP地址。

當系統中Socket通信結束后,可以用ServerSocket中的close()函數關閉該終端的Socket通信。

在某一時刻,服務器可能不僅會監聽到一個客戶端的連接請求,當有多個客戶端的連接請求時,服務器應該能處理所有客戶端的連續請求。本文中服務器端的實驗程序運行在PC上,服務器與客戶機端的Socket通信如圖1所示。

圖1 服務流程圖

當使用Socket進行通信時,客戶端程序可以通過以下兩個Socket的構造器連接到指定服務器端。

(1)Socket(InetAddress/String remoteAddress,int port):用于創建一個連接到指定遠程主機、遠程端口的 Socket,該函數中使用本地主機默認IP地址進行連接。

(2)Socket(InetAddress/String remoteAddress,int port, InetAddress localAddr, int localPort):用于創建一個連接到指定遠程主機和遠程端口的Socket,該函數中指定了本地IP地址和使用的端口號。

以上兩個構造器中指定的遠程主機,可以使用InetAddress表示,也可通過用String對象表示。在程序中,一般使用String對象表示遠程IP地址。同時,比較上述兩種方法,在本地主機只有一個IP地址的情況下,第一個方法由于使用默認的IP地址,無需指定,因此更為簡單。如以下代碼所示:

Socket s=new Socket(“192.168.12.59”, 30000);

//創建連接到本機,30000 端口的 Socket

當客戶端程序運行上面的代碼時,客戶端程序將連接到指定服務器端,服務器端的ServerSocket類中的accept方法將開始向下執行,這樣在服務器端和客戶端就產生了用于互相連接的Socket通信。

客戶端與服務器端建立了Socket之后,就可以相互進行通信。當需要獲取輸入流和輸出流時,Socket可以通過以下兩種方法來實現。

(1)InputStream getInputStream():函數將返回該Socket對象對應的輸入流,程序可以通過該輸入流取出需要的數據。

(2)OutputStream getOutputStream():函數將返回該Socket對象對應的輸出流,程序可以通過該輸出流輸出數據。

2.2 加載工程文件

打開 Android 集成開發環環境并加載工程文件:選擇任務欄的“file??>import”導入項目文件,從常規(General)文件的選項中選擇已經存在的項目到工作區

接著,選擇“Select root directory”選項,通過瀏覽文件夾功能選擇服務器或者客戶端程序目錄,這里選擇“EX02_08/tcp/JavaServer”,同時勾選“Copy project into workspace”復制到工作區,按下“確定”按鈕,再選擇“Finish”按鈕即可。

加載完工程后,在 Workspace 里找到 JavaServer工程,右擊工程名,選擇 Run As?>Java Application,運行 JavaServer 程序。如圖3所示。

3 系統測試

本文在模擬器中對程序進行測試,操作如下:右鍵項目名稱?>run as?>Android Application,這樣即可啟動運行該Android程序,如圖5所示。

在發送框中輸入“5554”,如圖6所示。

輸入完后,點擊發送按鈕,這時下面的 TextView 文本框中將顯示從服務器發送過來的數據。如圖7所示。

參考文獻

[1] 張輝,曹麗娜.現代通信原理與技術[M].西安:西安電子科技大學出版社,2005.

[2] 何忠龍,陳萱華,曹迎槐.多媒體通信技術[M].北京:北京希望電子出版社,2006.

[3] 王曉軍,毛京麗.計算機通信網[M].北京:北京郵電出版社,2007.

[4] 肖杰,譚慶平.基于J2EE的Web構件平臺的設計[J].長沙大學學報,2005,19(3):43?47.

[5] 田小波,陳蜀宇.MVC設計模式在J2EE架構下的研究與應用[J].西華大學學報,2007(2):33?35.

[6] 高振東.基于J2EE平臺的EJB技術研究與應用[J].航空計算技術,2003,33(1):28?32.

主站蜘蛛池模板: 波多野吉衣一区二区三区av| 久久青青草原亚洲av无码| 亚洲看片网| 日韩无码白| 青青草原国产av福利网站| 国产成人精品一区二区三在线观看| 国产69精品久久久久孕妇大杂乱| 国产一级精品毛片基地| 97久久精品人人做人人爽| 国产成人精品午夜视频'| 欧美成人综合在线| 伊人91在线| 亚洲成人精品| 99热这里只有精品2| 国产人成在线视频| 91成人精品视频| 国产成人免费手机在线观看视频| 国产精品久久自在自2021| 97se亚洲综合在线| 色哟哟国产精品| 日本a∨在线观看| 又粗又大又爽又紧免费视频| 国产香蕉国产精品偷在线观看| 欧美国产综合视频| 2021国产精品自拍| 亚洲无码高清一区| 成人午夜免费视频| 国产人成网线在线播放va| 一级福利视频| 国产亚洲欧美日韩在线一区二区三区| 亚洲91在线精品| 亚洲精品不卡午夜精品| 老司机久久99久久精品播放| 日本久久久久久免费网络| 国产91特黄特色A级毛片| 久久这里只有精品免费| 欧美三级视频在线播放| 国产亚洲精品资源在线26u| 精品色综合| 亚洲成在线观看 | 国产精品一区二区不卡的视频| 欧美成人一级| 欧美在线三级| 伊人久久久大香线蕉综合直播| www.亚洲一区| 国产一区成人| 亚洲无码视频一区二区三区| 亚洲天堂网视频| 在线国产91| 欧美中文字幕在线视频| 免费一级毛片在线观看| 午夜国产理论| www.亚洲国产| 91精品视频在线播放| 亚洲一区国色天香| 无码中文AⅤ在线观看| 亚洲综合色吧| 久久精品视频亚洲| 亚洲国产精品VA在线看黑人| 5555国产在线观看| 亚洲国产日韩一区| 成人午夜免费观看| 亚洲成a人片在线观看88| 国产白浆视频| 国产亚洲男人的天堂在线观看| 日韩专区欧美| 国产屁屁影院| 国产嫩草在线观看| 宅男噜噜噜66国产在线观看| a级毛片一区二区免费视频| 亚洲美女久久| 亚洲熟女中文字幕男人总站 | 国产在线日本| 久久精品娱乐亚洲领先| 国模私拍一区二区三区| 91麻豆精品国产高清在线| 熟女视频91| 激情无码视频在线看| 在线免费a视频| 亚洲精品第一在线观看视频| 国产一区二区三区精品欧美日韩| 国产浮力第一页永久地址 |