• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于Socket的Android聊天室系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

      2014-08-07 12:08:22胡晶晶
      微處理機(jī) 2014年4期
      關(guān)鍵詞:聊天室服務(wù)端晶晶

      胡晶晶

      (湖南生物機(jī)電職業(yè)技術(shù)學(xué)院,長沙410126)

      基于Socket的Android聊天室系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

      胡晶晶

      (湖南生物機(jī)電職業(yè)技術(shù)學(xué)院,長沙410126)

      Android是一種基于Linux V2.6內(nèi)核的自由及開放源代碼的智能手機(jī)操作平臺(tái);Socket是一種網(wǎng)絡(luò)編程接口。介紹了Android基于Socket的通信機(jī)制,建立了一個(gè)基于Socket的Android聊天室系統(tǒng)。其中Android平臺(tái)的手機(jī)作為客戶端,PC作為服務(wù)器端。該系統(tǒng)能夠?qū)崿F(xiàn)登錄、注冊(cè)、公聊、私聊、文件傳送等功能。

      套接字Socket;安卓Android;聊天室;客戶端;服務(wù)器

      1 引 言

      Android是一種基于Linux V2.6內(nèi)核的自由及開放源代碼的操作系統(tǒng),主要用于移動(dòng)設(shè)備。隨著移動(dòng)互聯(lián)網(wǎng)的迅猛發(fā)展,Android已占據(jù)全球智能手機(jī)操作系統(tǒng)市場 3/4以上的份額。聊天室是Android手機(jī)不可或缺的網(wǎng)絡(luò)通信應(yīng)用程序之一,而Socket機(jī)制是一種API,是進(jìn)行網(wǎng)絡(luò)通信編程的接口。介紹了Android基于Socket的通信機(jī)制,建立了一個(gè)基于Socket的Android聊天室系統(tǒng),提出了在C/S模式下用Socket實(shí)現(xiàn)Android聊天室系統(tǒng)的解決方案。

      2 Android系統(tǒng)架構(gòu)

      Android是一個(gè)分層的系統(tǒng)架構(gòu),構(gòu)建在Linux內(nèi)核基礎(chǔ)上。Android分為四個(gè)層次,從高層到低層分別是應(yīng)用程序?qū)?、?yīng)用程序框架層、系統(tǒng)運(yùn)行庫層和Linux內(nèi)核層。Android軟件層次結(jié)構(gòu)如圖1所示。Android在其核心庫的java包中,提供了用于客戶端的Socket類和用于服務(wù)器端的ServerSocket類。

      圖1 Android軟件層次結(jié)構(gòu)圖

      3 Android基于Socket的通信機(jī)制

      Android與服務(wù)器的通信方式主要有兩種,一是Http通信,二是Socket通信。兩者的最大差異在于,http連接使用的是“請(qǐng)求—響應(yīng)方式”,即在請(qǐng)求時(shí)建立連接通道,當(dāng)客戶端向服務(wù)器發(fā)送請(qǐng)求后,服務(wù)器端才能向客戶端返回?cái)?shù)據(jù)。而Socket通信則是在雙方建立起連接后就可以直接進(jìn)行數(shù)據(jù)傳輸,在連接時(shí)可實(shí)現(xiàn)信息的主動(dòng)傳送,而不需要每次由客戶端向服務(wù)器發(fā)送請(qǐng)求。通過建立Socket連接,可為通信雙方的數(shù)據(jù)傳輸提供通道。Socket的主要特點(diǎn)有數(shù)據(jù)丟失率低,使用簡單且易于移植。

      根據(jù)傳輸數(shù)據(jù)類型的不同,Socket主要分為三類:①流式Socket(SOCK_STREAM),在這種方式下,兩個(gè)通訊的應(yīng)用程序之間要先建立一種虛擬連接,提供可靠的、面向連接的通信流,它使用TCP協(xié)議從而保證了數(shù)據(jù)傳輸?shù)恼_性和有序性。②數(shù)據(jù)報(bào)Socket(SOCK_DGRAM),它使用數(shù)據(jù)報(bào)協(xié)議UDP,定義了一種無連接服務(wù),數(shù)據(jù)通過相互獨(dú)立的報(bào)文進(jìn)行傳輸,是無序的,并且不保證可靠、無差錯(cuò)。③原始Socket,原始套接字允許對(duì)底層協(xié)議如IP或ICMP直接訪問,它功能強(qiáng)大但使用較為不便,主要用于一些協(xié)議的開發(fā)。

      以下采用的是基于TCP協(xié)議的流式Socket方式。其通信機(jī)制框圖見圖2。

      4 聊天室系統(tǒng)設(shè)計(jì)

      聊天室系統(tǒng)由兩個(gè)部分組成:PC服務(wù)器端和Android手機(jī)客戶端。服務(wù)器端主要完成用戶信息的存儲(chǔ)、客戶端命令的接收與響應(yīng)以及信息轉(zhuǎn)發(fā)等服務(wù)器端應(yīng)有的功能??蛻舳酥饕瓿闪奶煨畔⒌陌l(fā)送與接收、用戶登錄、注冊(cè)以及文件傳送等功能。

      4.1 服務(wù)器端

      服務(wù)器端的工作過程如下:

      1)根據(jù)服務(wù)端的IP和PORT創(chuàng)建一個(gè)Server-Socket

      2)調(diào)用ServerSocket.accept()方法監(jiān)聽客戶端的連接

      3)根據(jù)Socket創(chuàng)建InputStream對(duì)象和Output-Stream對(duì)象

      4)調(diào)用InputStream.readUTF()或Output-Stream.writeUTF()與客戶端通信

      5)循環(huán)上述過程,不斷監(jiān)聽客戶端的連接

      4.2 客戶端

      客戶端的工作過程如下:

      1)根據(jù)IP和PORT創(chuàng)建Socket對(duì)象,用于連接服務(wù)器

      2)根據(jù)Socket創(chuàng)建InputStream對(duì)象和Output-Stream對(duì)象

      3)調(diào)用這兩個(gè)對(duì)象和服務(wù)端通信

      4)關(guān)閉InputStream和OutputStream

      5)關(guān)閉Socket

      5 聊天室具體實(shí)現(xiàn)

      5.1 服務(wù)器端實(shí)現(xiàn)

      服務(wù)器端程序一共包括四個(gè)類,其名稱及功能如下:

      Server.java:服務(wù)器端主程序,負(fù)責(zé)界面,以及服務(wù)端主程序ServerThread的啟動(dòng),服務(wù)端主程序ServerThread又產(chǎn)生BroadCaset及ClientThread線程。

      BroadCast.java:服務(wù)器向客戶端廣播線程,負(fù)責(zé)向客戶端發(fā)送消息。

      ClientThread.java:維持服務(wù)器與單個(gè)客戶端的連接線程,負(fù)責(zé)接收客戶端發(fā)來的信息。

      ServerThread.java:服務(wù)器監(jiān)聽端口線程,負(fù)責(zé)創(chuàng)建服務(wù)器端ServerSocket以及監(jiān)聽是否有新客戶端連接,并且記錄客戶端連接以及需要發(fā)送的信息。

      5.2 客戶端實(shí)現(xiàn)

      用戶登錄和注冊(cè)的主要類:

      MainActivity和MyRegisteActivity類,前一個(gè)主要實(shí)現(xiàn)用戶登錄,后一個(gè)主要實(shí)現(xiàn)用戶注冊(cè)。

      用戶實(shí)現(xiàn)私聊和群聊:

      MyChatActivity和ChatEveryActivity類

      用戶之間傳送和接收文件:

      MyFileActivity、NetTcpFileSendThread和NetTcp-FileReceiveThread類

      6 結(jié)束語

      介紹了Android基于Socket的通信機(jī)制,建立了一個(gè)基于Socket的Android聊天室系統(tǒng)。該系統(tǒng)能夠?qū)崿F(xiàn)用戶注冊(cè)、登錄、公共聊天、私人聊天以及文件傳送等功能。

      [1]胡晶晶.基于Java Socket的聊天室系統(tǒng)設(shè)計(jì)與設(shè)計(jì)[J].微處理機(jī),2010(5):66-67.

      [2]Elliotte Rusty Harold.JAVA網(wǎng)絡(luò)編程(第3版)[M].朱濤江,林劍譯.北京:中國電力出版社,2005:283-390.

      [3]林少丹.移動(dòng)終端應(yīng)用開發(fā)技術(shù)——Android實(shí)戰(zhàn)[M].北京:機(jī)械工業(yè)出版社,2013:1-176.

      Design and Im plement of Android Chat System Based on Socket

      HU Jing-jing
      (Hunan Biological and Electro-mechanical Polytechnic,Changsha 410126,China)

      Android is a smart-phone operating platform based on Linux V2.6 kernel,which is free and has open source code,and socket is a network programming interface.This paper introduces themechanism of Android communications based on Socket API,and designs an Android chat system based on Socket.In this system,the phoneswith Android platform are used as clients and a PC as a server,and the functions of login,registration,public chatting,private chatting,file transfer and so on are conducted aswell.

      Socket;Android;Chat System;Client;Server

      10.3969/j.issn.1002-2279.2014.04.016

      TP393

      :A

      :1002-2279(2014)04-0050-02

      胡晶晶(1967-),女,湖南株洲人,碩士,副教授,主研方向:計(jì)算機(jī)軟件、信息安全、信息隱藏。

      2013-12-30

      猜你喜歡
      聊天室服務(wù)端晶晶
      多多熊聊天室
      新少年(2023年10期)2023-10-24 07:47:12
      Digging for the past
      炎熱的夏天
      The Impact of Dignity on Design Behavior
      青年生活(2019年3期)2019-09-10 16:57:14
      云存儲(chǔ)中基于相似性的客戶-服務(wù)端雙端數(shù)據(jù)去重方法
      新時(shí)期《移動(dòng)Web服務(wù)端開發(fā)》課程教學(xué)改革的研究
      在Windows Server 2008上創(chuàng)建應(yīng)用
      歌劇聊天室 洗洗曬曬,又是新一天
      歌劇(2017年4期)2017-05-17 04:07:29
      歌劇聊天室 永遠(yuǎn)盛放的雪絨花
      歌劇(2017年3期)2017-05-17 04:06:47
      銀億股份:于無聲處聽驚雷
      林甸县| 古田县| 南雄市| 平远县| 荥阳市| 泸州市| 白城市| 宝坻区| 张家口市| 隆昌县| 思南县| 安仁县| 龙海市| 天峨县| 鹿邑县| 巨野县| 灵丘县| 客服| 山阴县| 柯坪县| 安福县| 溧水县| 泸水县| 喜德县| 龙海市| 贵溪市| 张家口市| 大安市| 西乌珠穆沁旗| 胶州市| 汪清县| 雷波县| 永新县| 文昌市| 米易县| 河曲县| 永康市| 巩义市| 宜兰市| 中阳县| 尚志市|