版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p> 本科畢業(yè)設(shè)計(論文)</p><p> 基于Android平臺的聊天系統(tǒng)設(shè)計與實現(xiàn)</p><p> 二〇一三年六月 </p><p> 學院名稱計算機科學與技術(shù)</p><p> 專業(yè)名稱信息安全</p><p> 學生姓名</p><p> 學號&l
2、t;/p><p> 指導教師</p><p><b> 摘要</b></p><p> 本課題主要研究基于Android的移動聊天系統(tǒng),以更好的用戶體驗性為目的開發(fā)出界面簡潔,用戶易操作的移動即時通信聊天工具。該聊天工具的主要功能:用戶注冊,登錄,好友一對一聊天,群組聊天。在該即時通信工具中的數(shù)據(jù)傳輸是通過Socket編程實現(xiàn)??蛻舳酥g通過服
3、務器對數(shù)據(jù)的轉(zhuǎn)發(fā)實現(xiàn)相互通信。</p><p> 本文首先概述了IM聊天工具的背景,其次是課題的目的及意義,然后介紹了軟件開發(fā)的環(huán)境和開發(fā)工具及其技術(shù),給出了軟件的系統(tǒng)架構(gòu),各個模塊的流程圖及用例,然后詳細介紹了改即時通信的工具的設(shè)計與實現(xiàn),最后對系統(tǒng)進行簡單的測試。</p><p> 關(guān)鍵詞:Android,即時通信,多線程,注冊,登錄,聊天</p><p>
4、<b> Abstract</b></p><p> The main research topics of the graduation Android-based mobile chat system, according to its architecture and design principles developed interface is simple and easy
5、to operate mobile instant messaging chat tools. The main function of the chat tool: user registration, login, friends one-on-one chat, group chat. Data transmission in the real-time communication tools Socket Programming
6、. Communicate with each other on the data forwarding between the client through the server.</p><p> The paper first outlines the background of the IM chat tool, followed by the purpose and significance of t
7、he issues, and then describes the software development environment and the development of tools and technology, the software system architecture, the flow chart of each module and use cases, and then detailed change inst
8、ant messaging tool design and implementation, and finally a simple test system.</p><p> Keywords: Android, instant messaging, multi-threaded, socket, client / server</p><p><b> 目錄</b&
9、gt;</p><p><b> 第一章 緒論1</b></p><p> 1.1 聊天軟件背景1</p><p> 1.2 課題目的及意義2</p><p> 1.4 設(shè)計思想4</p><p> 1.5 工作方法4</p><p> 第二章 A
10、ndroid聊天系統(tǒng)需求分析5</p><p><b> 2.1任務概述5</b></p><p> 2.1.1 目標5</p><p> 2.1.2 用戶特點5</p><p> 2.1.3 定義5</p><p> 2.1.4假定與約束6</p><p
11、> 2.2 需求規(guī)定6</p><p> 2.2.1 系統(tǒng)功能需求6</p><p> 2.2.2用戶注冊9</p><p> 2.2.3 用戶登錄11</p><p> 2.2.4 用戶主面板12</p><p> 2.2.5用戶聊天13</p><p> 2.
12、2.6 好友上下線提示15</p><p> 2.2.7增加好友15</p><p> 2.3對性能的規(guī)定15</p><p> 2.3.1精度15</p><p> 2.3.2時間特性要求16</p><p> 2.3.3靈活性16</p><p> 2.4輸人輸出要求
13、:16</p><p> 2.5數(shù)據(jù)管理能力要求16</p><p> 2.6其他專門要求16</p><p> 2.7運行環(huán)境規(guī)定16</p><p> 2.8支持軟件17</p><p> 第三章 基于Android平臺的聊天系統(tǒng)設(shè)計18</p><p> 3.1
14、定義18</p><p> 3.1.1專業(yè)術(shù)語18</p><p> 3.2 總體設(shè)計18</p><p> 3.2.1運行環(huán)境18</p><p> 3.3基本設(shè)計概念和處理流程19</p><p> 3.3.1 系統(tǒng)邏輯構(gòu)架圖(圖3.1)19</p><p> 3.3
15、.2系統(tǒng)物理架構(gòu)圖 (圖3.2)20</p><p> 3.3.4頂層系統(tǒng)包圖(圖3.3)20</p><p> 3.3.5 具體處理流程21</p><p> 3.4子系統(tǒng)設(shè)計24</p><p> 3.4.1用戶信息:24</p><p> 3.4.1.2功能概要:24</p>
16、<p> 3.4.2用戶登錄27</p><p> 3.4.3 聊天管理28</p><p> 3.5接口設(shè)計31</p><p> 3.5.1 用戶接口31</p><p> 3.5.2 外部接口32</p><p> 3.5.3內(nèi)部接口32</p><p>
17、 3.6運行設(shè)計32</p><p> 3.6.1運行模塊組合32</p><p> 3.6.2運行控制33</p><p> 3.6.3運行時間33</p><p> 3.7系統(tǒng)數(shù)據(jù)結(jié)構(gòu)設(shè)計33</p><p> 3.7.1邏輯結(jié)構(gòu)設(shè)計33</p><p> 3.7.
18、2物理結(jié)構(gòu)設(shè)計(圖3.14)35</p><p> 3.7.3數(shù)據(jù)結(jié)構(gòu)與程序的關(guān)系(圖3.15)36</p><p> 3.8.系統(tǒng)出錯處理36</p><p> 3.8.1出錯信息36</p><p> 3.8.2補救措施37</p><p> 第四章 基于Android平臺的聊天系統(tǒng)實現(xiàn)39&
19、lt;/p><p> 4.1 服務端模塊39</p><p> 4.2 客戶端模塊41</p><p> 4.2.1 客戶端啟動界面41</p><p> 4.2.2 登錄模塊43</p><p> 4.2.3 注冊界面48</p><p> 4.2.4 登錄成功51<
20、/p><p> 第五章 基于Android平臺的聊天系統(tǒng)系統(tǒng)測試58</p><p><b> “結(jié)論”60</b></p><p><b> “致謝”61</b></p><p><b> 參考文獻62</b></p><p><b
21、> 第一章 緒論</b></p><p> 隨著現(xiàn)代技術(shù)的不斷輸入和信息化的廣泛普及,移動網(wǎng)絡作為一種新興事物,在近些年得到了前所未有的普及和深入,移動網(wǎng)絡上的各種應用層出不窮,給各個階層、各個年齡段的用戶提供了不同的個性化的服務。而現(xiàn)代中小型企業(yè)的領(lǐng)導認識到進一步提高企業(yè)信息化的必要性。為使企業(yè)能在瞬息萬變的信息時代生存下去,適應激烈的市場競爭,現(xiàn)代企業(yè)要求加強員工之間的交流和通信能力,
22、尤其是領(lǐng)導和員工之間的共同能力,實時的交流系統(tǒng)就是在這種條件下誕生的。系統(tǒng)開發(fā)是一個十分復雜的系統(tǒng)工程。這里對系統(tǒng)開發(fā)的基本過程和方法進行介紹,列出相關(guān)文檔的示例并加以說明。</p><p> 要提高市場競爭力,就要對市場作充分的調(diào)查和詳細的研究,同時也要有好的客戶服務。企業(yè)要在復雜的環(huán)境下作出對策。員工與員工 員工與領(lǐng)導間的即時交流尤為重要,移動網(wǎng)絡在線聊天系統(tǒng)對于企業(yè)來說就是一種交流和通信的平臺,本系統(tǒng)做到
23、了信息的及時的反饋,即時的處理并作出相應的行動。</p><p> 移動網(wǎng)絡通信是網(wǎng)絡應用的重要體現(xiàn)方面。移動網(wǎng)上即時通信則是移動網(wǎng)絡應用的重要體現(xiàn)方面。本聊天系統(tǒng)主要應用于小型企業(yè),學?;蛐⌒途钟蚓W(wǎng)內(nèi)部使用。本應用程序使短距離交流更加快捷和便利,更能高效率的體現(xiàn)現(xiàn)代即時通信的特點。</p><p> 本系統(tǒng)能夠滿足中小型企業(yè),學校的內(nèi)部網(wǎng)絡即時通信的需要,在內(nèi)部網(wǎng)絡正常環(huán)境的運營下,
24、提供即時通信的能力,本系統(tǒng)使用java(Server),Android(Client)開發(fā),本系統(tǒng)能夠為中小型企業(yè)協(xié)同工作,相互間的交流提供了有力的工具,運用在局域網(wǎng)的本系統(tǒng),能夠為企業(yè)員工的交流提供幫助,有利于提高工作效率。</p><p> 1.1 聊天軟件背景</p><p> 聊天軟件,就是通常我們說的即時聊天工具IM,我們常用的聊天軟件有QQ,微信,飛信等。</p>
25、;<p> 需要協(xié)議支持,傳統(tǒng)的socket編程并不滿足聊天的功能,比如服務器與客服端的雙向交互,消息的雙向推送。</p><p> 在移動互聯(lián)網(wǎng)時代,我們需要基于移動終端開發(fā)新型的聊天軟件,以滿總大眾的需求,常用的移動設(shè)備終端操作系統(tǒng)ios,android,wp7等等。</p><p> 目前的聊天軟件基本分為2種架構(gòu)形式,(1)、C/S架構(gòu):采用客戶端/服務器形式,
26、用戶使用過程中需要下載安裝客戶端軟件,典型的代表有:QQ、微信 、微博 、YY、IS、MSN等;(2)、B/S架構(gòu):即瀏覽器/服務端形式,這種形式的即時通訊軟件,直接借助互聯(lián)網(wǎng)為媒介、客戶端無需安裝任何軟件,既可以體驗服務器端進行溝通對話,一般運用在電子商務網(wǎng)站的服務商,典型的代表有Websitelive 、WebQQ等。</p><p> 1.2 課題目的及意義</p><p> 通
27、常IM服務會在使用者通話清單(類似電話簿)上的某人連上IM時發(fā)出訊息通知使用者,使用者便可據(jù)此與此人透過互聯(lián)網(wǎng)開始進行實時的通訊。除了文字外,在頻寬充足的前提下,大部分IM服務事實上也提供視訊通訊的能力。實時傳訊與電子郵件最大的不同在于不用等候,不需要每隔兩分鐘就按一次“傳送與接收”,只要兩個人都同時在線,就能像多媒體電話一樣,傳送文字、檔案、聲音、影像給對方,只要有網(wǎng)絡,無論對方在天涯海角,或是雙方隔得多遠都沒有距離。</p&g
28、t;<p> 現(xiàn)階段即時通信系統(tǒng)如果僅在PC上已經(jīng)無法滿足人們對信息分享,因此把PC上的即時通信移植到移動設(shè)備上必然是即時通信發(fā)展的趨勢,也是IM系統(tǒng)軟件發(fā)展的一個重要方向。同時IM的移植成功能夠讓人們無時無地的更好的交流,文化的互溶,當然交流是最基礎(chǔ)的功能,現(xiàn)在很多移動IM系統(tǒng)上同時還增加了支付功能(利用電話,銀行等)這樣IM也促進了經(jīng)濟的發(fā)展。</p><p> 本課題涉及、數(shù)據(jù)庫、構(gòu)架、設(shè)
29、計模式、多線程編程、Android移動應用開發(fā)等有關(guān)軟件技術(shù)。</p><p> 1.3主要研究(設(shè)計)內(nèi)容、研究(設(shè)計)思想及工作方法或工作流程</p><p> 圖1.1 基于Android平臺的聊天系統(tǒng)流程圖</p><p> 主要研究內(nèi)容:基于Android平臺的聊天系統(tǒng)主要研究內(nèi)容是系統(tǒng)怎么樣對用戶信息的封裝,傳遞,怎么對信息類型的區(qū)分,怎樣實現(xiàn)多用
30、戶使用以及Android頁面的設(shè)計,以下是先關(guān)技術(shù)。</p><p> Java 的Scoket網(wǎng)絡編程。Java服務端對android端提交的數(shù)據(jù)進行處理然后發(fā)給客戶端進行顯示。</p><p> 多線程編程。每一個在線用戶占用一個獨立的線程與服務器進行交互,用戶首先將信息發(fā)送到服務器,服務器解析信息,并將信息轉(zhuǎn)發(fā)給相應的用戶。使用線程可以把占據(jù)長時間的程序中的任務放到后臺去處理,這
31、樣比如用戶點擊了一個按鈕去觸發(fā)某些事件的處理,可以彈出一個進度條來顯示處理的進度,程序的運行速度可能加快,用戶界面可以更加吸引人。</p><p> 網(wǎng)絡編程。Android手機端將組裝好的數(shù)據(jù)包通過無線網(wǎng)絡發(fā)送到服務器,服務器讀取并解析數(shù)據(jù)包,組裝一個相應的回應數(shù)據(jù)庫并返回給Android端,以此達到通信的目的。</p><p> Android移動應用開發(fā)。學習Android開發(fā)技
32、術(shù),掌握Android應用架構(gòu)和開發(fā)流程。</p><p><b> 1.4 設(shè)計思想</b></p><p> 首先在Activity中注冊一個消息處理器,該處理器用來處理接收到的消息,然后將結(jié)果顯示在Activity中。</p><p> 發(fā)送消息的時候,我們將自己的信息封裝成一個消息包進行傳輸。</p><p&g
33、t; 將該消息包經(jīng)過封裝使用UDP協(xié)議的Scoket網(wǎng)絡編程進行封裝,傳輸給接收方進行接收。</p><p> 接收方收到傳輸過來的封裝的消息包后調(diào)用解析控制器,解析控制器通過協(xié)議中的一些標示,解碼出相應的消息包。</p><p> 接收方再調(diào)用消息處理器,通過響應消息包中的一些標志,來判斷調(diào)用相應的處理器進行處理,然后得出消息。</p><p><b&
34、gt; 1.5 工作方法</b></p><p> 服務器啟動,等待客戶端請求到達。</p><p> 客戶端(Android)啟動聊天軟件,按提示輸入相關(guān)信息,并將信息封裝傳遞給服務端。</p><p> 服務端接收客戶端封裝傳輸?shù)男畔⒑?,提取其中的信息類型判斷?zhí)行什么功能,執(zhí)行完功能后,返回相應信息給客戶端。</p><p
35、> 客戶端根據(jù)返回的信息的類型進行相應處理,并顯示信息/跳轉(zhuǎn)相應界面。</p><p> 第二章 Android聊天系統(tǒng)需求分析</p><p> 隨著經(jīng)濟全球化的推進以及企業(yè)激烈的競爭,改善企業(yè)內(nèi)部及整個供應鏈各環(huán)節(jié)的管理、調(diào)度資源配置,迅速適應客戶的新需求和市場新機遇,是企業(yè)贏得競爭勝利的決定性因素。</p><p> 需求分析是軟件分析中的一個
36、重要步驟。它的基本任務是要準確地分析出系統(tǒng)應用者的需要,以及系統(tǒng)目標必須具備哪些功能。這些功能必須準確地,完整地體現(xiàn)出用戶的要求。</p><p><b> 2.1任務概述</b></p><p><b> 2.1.1 目標</b></p><p> 使用Android和java編程語言及數(shù)據(jù)庫技術(shù)相結(jié)合,編寫一個基
37、于android端的移動聊天系統(tǒng)軟件.這個系統(tǒng)提供多個用戶及時并發(fā)通信的平臺.未注冊用戶可以注冊成系統(tǒng)會員,已注冊用戶可以通過登錄進入聊天系統(tǒng).在系中用戶可以選擇與某一個用戶聊天,系統(tǒng)可以給用戶推送某個好友上線或者下線的消息,可以的對自己的好友進行分組管理,同時對好友的增刪改查功能。</p><p> 2.1.2 用戶特點</p><p> 對用戶沒有特定的要求有無計算機專業(yè)知識都可以
38、使用本系統(tǒng)進行聊天,因此本系統(tǒng)會提供一個友好的用戶界面,能實現(xiàn)最基礎(chǔ)的文字傳輸功能</p><p><b> 2.1.3 定義</b></p><p> SC------ Smile Chatting System ( 類似QQ的基于android的系統(tǒng) ) </p><p> User------ 用戶</p>&l
39、t;p> Server----- 系統(tǒng)</p><p> 2.1.4假定與約束</p><p> 服務器方面要求雙核CPU 頻率大于2.0GHZ,內(nèi)存大于1G,硬盤空間要求300G級以上,系統(tǒng)建議是Windous7。</p><p> 客戶端必須是Android系統(tǒng)且版本要在2.3的手機,內(nèi)存1G以上,cpu雙核1.3GHZ級以上。</p>
40、<p><b> 2.2 需求規(guī)定</b></p><p> 2.2.1 系統(tǒng)功能需求</p><p> 2.2.1.1功能需求:</p><p> 普通功能:用戶申請,用戶登錄,后臺對用戶驗證,聊天,消息提示,后臺運行,快捷方式創(chuàng)建,后臺管理 。</p><p> 2.2.1.2具體要求: &
41、lt;/p><p> 用戶申請 :用戶在申請界面填入相關(guān)正確信息后,后臺對其進行處理,并返回相應的QQ(隨機生成)號碼給用戶 。</p><p> 用戶登錄:用戶輸入自己的QQ號及密碼后,點擊登錄,后臺對其進行驗證,以及好友的查找,登錄成功后返回該用戶的好友界面。 </p><p> 聊天:用戶選定聊天對象后,對其發(fā)送信息,信息將由后臺轉(zhuǎn)發(fā)給選定的聊天對象,進
42、行,提示,顯示。</p><p> 后臺運行 用戶可以退出主界面,將聊天軟件在后臺運行,當有消息傳入時,消息會用廣播的形勢顯示。</p><p> 快捷方式:當該聊天軟件第一次運行時,系統(tǒng)會自動生成快捷方式且顯示在設(shè)備的主界面上。</p><p> 后臺管理:對用戶的管理。</p><p><b> SC系統(tǒng)用例圖</
43、b></p><p> 2.2.1.3 系統(tǒng)靜態(tài)模型設(shè)計:</p><p> 系統(tǒng)靜態(tài)模型中主要類是聊天系統(tǒng)客戶端中的啟動類(WelcomActivity);用戶登錄類(LoginActivity),該類中設(shè)計了數(shù)據(jù)傳輸,以及一些實體以及工具類,因此該類主要依賴如圖2.1中的類;用戶注冊類(RegisterActivity);好友列表界面類(FriendListActivity)
44、,該類主要設(shè)計頁面設(shè)計類如圖2.1中的ListView類和Adapter類;用戶聊天類(ChatActivity),該類重點設(shè)計數(shù)據(jù)傳輸以及本地數(shù)據(jù)處理,依賴如圖2.1中的類。</p><p> 圖2.1 系統(tǒng)靜態(tài)模型</p><p> 2.2.1.4系統(tǒng)動態(tài)模型</p><p> 用戶在安裝了客戶端后,點擊啟動聊天系統(tǒng)客戶端,如果用戶沒有賬戶,則點擊進入注冊
45、界面按提示注冊,注冊成功后返回登錄界面進行登錄,登錄信息通過系統(tǒng)驗證后,提示登錄成功且返回好友列表,如果該用戶有好友,點擊進入聊天界面,聊天數(shù)據(jù)通過客戶端封裝后傳到服務端進行轉(zhuǎn)發(fā)給相應好友接收顯示,動態(tài)模型時序圖如圖2.2</p><p> 圖 2.2 系統(tǒng)動態(tài)模型</p><p><b> 2.2.2用戶注冊</b></p><p>
46、描述:輸入注冊需要的信息,且保證正確</p><p><b> 參與者:用戶</b></p><p><b> 執(zhí)行者:用戶</b></p><p> 前提條件:開啟程序,進入注冊界面</p><p> 2.2.2.1 注冊靜態(tài)模型</p><p> 注冊模塊主要實
47、現(xiàn)了用戶注冊功能,主要類是RegisterActivity,該類中把數(shù)據(jù)封裝成傳輸數(shù)據(jù)類中的實體,最后通過Socket將封裝的數(shù)據(jù)傳輸?shù)椒斩诉M行數(shù)據(jù)操作如圖2.3.</p><p> 圖2.3注冊靜態(tài)模型</p><p> 2.2.2.2 注冊動態(tài)模型</p><p> 用戶進入注冊界面后按提示輸入相關(guān)信息,客戶端必須進行格式驗證,驗證成功后再進行注冊,注冊
48、信息通過服務端處理后返回信息給客戶端,提示用戶所申請的賬戶號動態(tài)模型時序圖如圖2.4.</p><p> 圖2.4注冊動態(tài)模型</p><p> 2.2.3 用戶登錄</p><p> 描述:輸入正確的QQ號和密碼顯示登錄錯誤,輸入錯誤顯示QQ密碼錯誤</p><p><b> 參與者:用戶</b></p&
49、gt;<p><b> 執(zhí)行者:用戶</b></p><p> 前提條件:啟動程序,進入登錄界面</p><p> 2.2.3.1 用戶登錄靜態(tài)模型</p><p> 登錄模塊主要實現(xiàn)了用戶的登錄,該模型的主要類是LoginActivity類(主界面),其主要的數(shù)據(jù)是通過客戶端封裝后經(jīng)過客戶端socket傳輸給服務端,服務
50、端應有一個Socket監(jiān)聽程序監(jiān)聽客戶端的傳輸信息,并進行信息驗證。該模塊主界面類主要依賴相關(guān)類如圖2.5。</p><p> 圖2.5用戶登錄靜態(tài)模型</p><p> 2.2.3.2 登錄動態(tài)模型</p><p> 進入登錄界面后,按系統(tǒng)提示輸入相關(guān)信息(本系統(tǒng)賬戶號暫為6位數(shù)字);輸入正確賬戶和密碼格式正確后,數(shù)據(jù)傳輸?shù)胶笈_服務器進行驗證,并且給客戶端輸
51、出相應信息,登錄動態(tài)模型如圖2.5。</p><p> 圖2.5登錄動態(tài)模型</p><p> 2.2.4 用戶主面板</p><p> 描述:頭像顯示,賬號號顯示,好友列表,分組,好友基本信息,聊天信息顯示</p><p> 前提條件:正確登錄賬號后</p><p> 2.2.4.1 用戶主面板靜態(tài)模型&l
52、t;/p><p> 用戶登錄成功后進入該模塊,該模塊主要實現(xiàn)用戶好友列表顯示,用戶最近聊天好友列表顯示,好友分組列表顯示。主要依賴一系列的界面設(shè)計類以及一些適配器類以及數(shù)據(jù)傳輸類如圖2.6。</p><p> 圖2.6用戶主面板靜態(tài)模型</p><p><b> 事件流:</b></p><p> 頭像的正確顯示及即
53、時更新;</p><p> 賬號昵稱的正確顯示及即時更新;</p><p><b> 賬號號的正確顯示;</b></p><p> 好友列表正確顯示及好友列表的更新;</p><p><b> 聊天消息提示;</b></p><p> 點擊頭像出現(xiàn)消息框; <
54、/p><p> 能否實現(xiàn)大小頭像; </p><p><b> 好友上下線提示。</b></p><p><b> 2.2.5用戶聊天</b></p><p> 描述:修改個人信息(昵稱,姓名,年齡,頭像等);</p><p><b> 參與者:用戶<
55、/b></p><p><b> 執(zhí)行者:用戶</b></p><p> 前提條件:正確登錄QQ,打開個人信息面板</p><p> 2.2.5.1 用戶聊天靜態(tài)模型</p><p> 該模塊主要實現(xiàn)了用戶聊天功能,以及消息顯示功能,消息的本地存儲功能,該模塊的主要類及主界面(ChatActivity)主要
56、依賴一些實體類,數(shù)據(jù)存儲類以及數(shù)據(jù)傳輸類如圖2.7。</p><p> 圖2.7用戶聊天靜態(tài)模型</p><p> 2.2.5.2 聊天模塊動態(tài)模型</p><p> 用戶點擊好進入聊天界面后,在輸入框輸入信息,點擊發(fā)送后信息經(jīng)過封裝后傳輸?shù)椒掌鬟M行轉(zhuǎn)發(fā)給相應的好友如圖2.8。</p><p> 圖2.8聊天模塊動態(tài)模型</p
57、><p> 2.2.6 好友上下線提示</p><p> 描述:當用戶好友列表中的好友下線時,系統(tǒng)會推送提示信息給用戶</p><p> 參與者:用戶 系統(tǒng)</p><p><b> 執(zhí)行者:系統(tǒng)</b></p><p> 前提條件:系統(tǒng)運行正常,用戶登錄到用戶界面,且保持在線</p
58、><p><b> 事件流:</b></p><p> 用戶正常登錄,系統(tǒng)運行正常,用戶中有好友;</p><p> 當用戶下線時 ,該用戶會改變在線狀態(tài)碼;</p><p> 系統(tǒng)獲取該狀態(tài)碼,且對該用戶中的好友進行查找;</p><p> 再把該用戶下線的消息通過系統(tǒng)發(fā)給每個好友。<
59、;/p><p><b> 2.2.7增加好友</b></p><p><b> 描述:增加好友ID</b></p><p><b> 參與者:用戶</b></p><p><b> 執(zhí)行者:用戶</b></p><p> 前提
60、條件:登錄成功進入增加好友界面</p><p><b> 事件流:</b></p><p> 必須知道對方ID可直接添加好友;</p><p> 添加后,好友列表更新;</p><p> 且系統(tǒng)會反饋信息回被加的用戶,提示誰加了他。</p><p><b> 2.3對性能的規(guī)定
61、</b></p><p><b> 2.3.1精度</b></p><p> 在進行輸入輸出時必須清晰的列出所有輸入狀況及數(shù)據(jù),不能馬馬虎虎,要考慮到盡可能達到的范圍,以使輸入輸出完整準確。</p><p> 2.3.2時間特性要求</p><p> 查詢服務部分:用戶通過電腦提交命令到返回結(jié)果不超過
62、5秒鐘。</p><p> 數(shù)據(jù)管理部分:提交某一數(shù)據(jù)錄入到結(jié)果返回不超過5秒鐘。</p><p><b> 2.3.3靈活性</b></p><p> 采用現(xiàn)在最流行的觸控模式操作。</p><p> Android2.3.3系統(tǒng)及以上;服務器運行在windows7上。</p><p>
63、 精度和有效時限有用戶設(shè)定。</p><p> 2.4輸人輸出要求:</p><p><b> 符合精度要求。</b></p><p> 2.5數(shù)據(jù)管理能力要求</p><p> 聊天號信息:聊天號,大小為6個字符,只能為數(shù)字。</p><p> 聊天記錄信息:不能存在非法語言 且不能
64、多于200個字符。</p><p> 用戶名信息:不能超過20個字符。</p><p> 密碼信息:不超過20個字符。</p><p><b> 2.6其他專門要求</b></p><p> 在程序的開發(fā)過程中,應遵循結(jié)構(gòu)化的程序設(shè)計原則,精心設(shè)立運行日志,從而加強系統(tǒng)的可維護性;另一方面要注重系統(tǒng)的界面友好性、
65、保持各程序模塊界面的統(tǒng)一。</p><p><b> 2.7運行環(huán)境規(guī)定</b></p><p><b> 服務器端: </b></p><p> 硬件需求:處理器 雙核2.0GHZ級以上 內(nèi)存 2G級以上 硬盤 300 </p><p> 軟件需求:oracle數(shù)據(jù)庫</p&
66、gt;<p><b> 客戶端:</b></p><p> 硬件需求:android2.3.3級平臺,搭載至少單核1.3GHZcpu</p><p><b> 2.8支持軟件</b></p><p> 操作系統(tǒng): windoows7</p><p> 編譯程序:JAVA A
67、ndroid</p><p> 測試程序:JAVA Android</p><p> 第三章 基于Android平臺的聊天系統(tǒng)設(shè)計</p><p><b> 3.1 定義</b></p><p><b> 3.1.1專業(yè)術(shù)語</b></p><p> 在整個系統(tǒng)
68、設(shè)計實現(xiàn)中會涉及的專業(yè)術(shù)語如(表3.1):</p><p><b> 表 3.1專業(yè)術(shù)語</b></p><p><b> 3.2 總體設(shè)計</b></p><p> 系統(tǒng)采用流行的C/S結(jié)構(gòu)模式。系統(tǒng)的分析設(shè)計采用面向?qū)ο蟮募夹g(shù),應用Visio等工具進行輔助設(shè)計。</p><p><b
69、> 3.2.1運行環(huán)境</b></p><p><b> 硬件環(huán)境要求:</b></p><p> 選擇支持兩路Intel Xeon 2.8GHz 處理器、2GB ECC DDR 內(nèi)存、500GB SCSI 硬盤以上配置的部門級服務器比較適合。 </p><p><b> 軟件環(huán)境要求:</b>
70、;</p><p> 可以考慮選擇如下方案: </p><p> 操作系統(tǒng):Windows8/Windows7/Windows XP</p><p> 開發(fā)平臺:Eclipse(juno) Android SDK PL/SQL</p><p> 開發(fā)語言:Java(jak1.7) Android</p><p&
71、gt; 后臺數(shù)據(jù):Oracle </p><p><b> 運行環(huán)境: </b></p><p> 服務器端: Oracle+j2ee框架 </p><p> 客戶端: Android設(shè)備(模擬機)。</p><p> 3.3基本設(shè)計概念和處理流程</p><p> 3.3.1 系統(tǒng)
72、邏輯構(gòu)架圖(圖3.1)</p><p><b> 圖3.1</b></p><p> 3.3.2系統(tǒng)物理架構(gòu)圖 (圖3.2)</p><p><b> 圖3.2</b></p><p> 3.3.4頂層系統(tǒng)包圖(圖3.3)</p><p><b> 圖3.
73、3</b></p><p><b> 類包說明:</b></p><p> 業(yè)務頁面:客戶端主界面,主要是Android的Activity。</p><p> 業(yè)務操作:主要控制業(yè)務訪問的接口和業(yè)務流轉(zhuǎn)。</p><p> 數(shù)據(jù)處理:提供業(yè)務的實現(xiàn),包括對業(yè)務數(shù)據(jù)的增、刪、改、查,信息的轉(zhuǎn)發(fā)等操作。&
74、lt;/p><p> 數(shù)據(jù)實體:業(yè)務對象的實體類。</p><p> 數(shù)據(jù)接口:提供數(shù)據(jù)庫的訪問,傳遞數(shù)據(jù)或返回相應數(shù)據(jù)。</p><p> 系統(tǒng)輔助:提供了供整個系統(tǒng)輔助的功能。</p><p> 3.3.5 具體處理流程 </p><p> 3.3.5.1 用戶申請流程:用戶進入注冊界面,按照相關(guān)提示輸入信息
75、,信息經(jīng)封裝后由服務器就收處理,并給用戶返回注冊的QQ號如圖3.4。</p><p> 圖3.4 用戶申請流程</p><p> 3.3.5.2 用戶登錄流程:用戶根據(jù)界面提示填入相關(guān)信息,信息先在客戶端進行格式判斷后封裝傳遞到服務器進行驗證,最后返回相應信息,如圖 3.5。</p><p> 圖3.5 用戶登錄流程</p><p>
76、 3.3.5.3 用戶聊天流程:用戶登錄成功后,選擇好友進行聊天,服務器對數(shù)據(jù)進行封裝以及轉(zhuǎn)發(fā),如圖 3.6。</p><p> 圖 3.6 用戶聊天流程</p><p> 3.3.5.4 系統(tǒng)后臺管理流程:后臺服務器接收到不同類型的數(shù)據(jù),并對數(shù)據(jù)進行處理以及根據(jù)客戶端提出的申請對數(shù)據(jù)庫進行操作,如圖 3.7。</p><p> 圖 3.7 系統(tǒng)后臺管理流程&
77、lt;/p><p><b> 3.4子系統(tǒng)設(shè)計</b></p><p> 3.4.1用戶信息:</p><p> 3.4.1.1 用戶信息模塊總體用例圖 圖3.8。</p><p> 圖3.8 用戶信息模塊總體用例圖</p><p> 3.4.1.2功能概要:</p><
78、p><b> 新用戶注冊</b></p><p><b> 概述:</b></p><p> 新用戶注冊使用本系統(tǒng)賬號,信息按要求填寫方可提交。</p><p> 用戶注冊用例圖,圖3.9。</p><p><b> 圖3.9</b></p>&l
79、t;p> 用戶注冊流程圖,圖3.10:</p><p><b> 圖3.10</b></p><p> 3.4.1.4功能前提條件:</p><p> 客戶端必須處于WIFI聯(lián)網(wǎng)狀態(tài),且服務器必須開啟。</p><p> 3.4.1.5注冊功能概要</p><p> 驗證填入注冊
80、信息格式</p><p><b> 驗證填入信息完整性</b></p><p><b> 注冊成功</b></p><p><b> 存儲用戶注冊信息</b></p><p> 給用戶創(chuàng)建好友數(shù)據(jù)表</p><p> 系統(tǒng)返回給用戶QQ號<
81、;/p><p> 3.4.1.6數(shù)據(jù):</p><p> 用戶信息數(shù)據(jù)庫表及數(shù)據(jù)字典定義如下表。</p><p> 用戶好友數(shù)據(jù)庫表及數(shù)據(jù)字典定義如下表。</p><p> 3.4.1.7 錯誤:</p><p> 注冊可能出現(xiàn)的錯誤如表3.4</p><p><b> 3.4
82、.2用戶登錄</b></p><p><b> 概述:</b></p><p> 用戶登錄功能,使用已注冊的賬號進行登錄,進入本系統(tǒng)進行聊天。</p><p> 3.4.2.1登錄用例圖,圖3.11。</p><p><b> 圖 3.11</b></p><
83、p> 3.4.2.2登錄流程圖,見3.12。</p><p><b> 圖 3.12</b></p><p> 3.4.2.3 功能前提條件:</p><p> 使用登錄功能的前提條件是已經(jīng)擁有本系統(tǒng)賬號的用戶,否則將無法正常使用本功能</p><p> 3.4.2.4 登錄功能概要</p>
84、<p><b> 判斷輸入信息格式</b></p><p><b> 服務器驗證輸入信息</b></p><p> 跳轉(zhuǎn)進入好友列表界面</p><p> 3.4.2.5 數(shù)據(jù):</p><p> 用戶信息數(shù)據(jù)庫表及數(shù)據(jù)字典定義如下表。</p><p>
85、; 3.4.2.6 錯誤:</p><p> 3.4.3 聊天管理 </p><p> 3.4.3.1 用戶聊天模塊用例圖(圖3.13)</p><p> 3.4.3.2用戶聊天模塊總體流程圖(圖3.14)</p><p><b> 圖3.14</b></p><p> 3.4.3.3
86、 功能前提條件:</p><p> 客戶端必須處于WIFI聯(lián)網(wǎng)狀態(tài),且服務器必須開啟。使用登錄功能的前提條件是已經(jīng)擁有本系統(tǒng)賬號的用戶,否則將無法正常使用本功能。用戶必須有好友且在線。</p><p> 3.4.3.4聊天功能概要</p><p> 用戶點擊好友列表中的一個好友時,進入聊天界面</p><p> 在輸入框輸入信息,點擊
87、發(fā)送按鈕,發(fā)送信息</p><p> 當用戶不在線時,系統(tǒng)提示該用戶不在線</p><p> 好友回復消息是在該聊天頁面顯示</p><p> 當有好友發(fā)消息過來時,系統(tǒng)會通過Toast提示</p><p> 當QQ在后臺運行時有好友發(fā)送消息過來時,系統(tǒng)會通過廣播的形勢告訴用戶</p><p> 用戶聊天后退
88、出聊天界面后,聊天的好友被加入最近聊天界面(聊天信息保留)</p><p><b> 購物車。</b></p><p> 3.4.3.5 數(shù)據(jù)</p><p> 用戶信息數(shù)據(jù)庫表及數(shù)據(jù)字典定義如下表:</p><p> 用戶好友數(shù)據(jù)庫表及數(shù)據(jù)字典定義如下表:</p><p> 用戶聊天信
89、息表(_ID)客戶端如下表:</p><p><b> 3.4.3.6錯誤</b></p><p><b> 3.5接口設(shè)計</b></p><p> 3.5.1 用戶接口</p><p> 基于Android聊天系統(tǒng)屬于移動互聯(lián)網(wǎng)聊天系統(tǒng),用戶只需要使用Android手機適當?shù)牟僮骱洼斎脒m
90、當?shù)臄?shù)據(jù),進過系統(tǒng)驗證,就可以享受使用的功能。系統(tǒng)不需要額外的特殊命令和額外的客戶端,通過客戶端,輸入正確地址就可以訪問系統(tǒng)。</p><p> 3.5.2 外部接口</p><p> 3.5.2.1 軟件接口</p><p> 服務器程序可使用oracle 提供的對SQL 的接口,進行對數(shù)據(jù)庫的所有訪問。</p><p> 服務器程
91、序上可使用oracle 的數(shù)據(jù)庫對重要數(shù)據(jù)進行的備份,防止數(shù)據(jù)被破壞而無法恢復。</p><p> 在網(wǎng)絡軟件接口方面,使用SCOKET傳輸用戶信息。</p><p> 3.5.2.2硬件接口</p><p> 在輸入方面,通過使用Android手機登錄,顯示好友列表頁面,點擊進行聊天,通過socket向服務端傳輸數(shù)據(jù)。</p><p>
92、; 在輸出方面:服務端接受客戶端輸出數(shù)據(jù),通過判斷客戶端輸出數(shù)據(jù)類型,進行相應的消息反饋。</p><p><b> 3.5.3內(nèi)部接口</b></p><p> 基于Android聊天系統(tǒng)的子系統(tǒng)模塊采用面向?qū)ο缶幊痰乃枷?,可以實現(xiàn)模塊之間通過接口調(diào)用,減輕模塊間的耦合性。</p><p> 模塊間的數(shù)據(jù)傳入是利用接口的調(diào)用,參數(shù)傳遞
93、,接口返回值來達到傳遞數(shù)據(jù)的目的。</p><p> 模塊內(nèi)部是采用函數(shù)調(diào)用,參數(shù)傳遞,返回值來實現(xiàn)模塊內(nèi)部的數(shù)據(jù)傳遞。</p><p><b> 3.6運行設(shè)計</b></p><p> 3.6.1運行模塊組合</p><p> 客戶機程序在有輸入時啟動接收數(shù)據(jù)模塊,通過各模塊之間的調(diào)用,讀入并對輸入進行格式化
94、。在接收數(shù)據(jù)模塊得到充分的數(shù)據(jù)時,將調(diào)用網(wǎng)絡傳輸模塊,將數(shù)據(jù)通過網(wǎng)絡送到服務器。并等待接收服務器返回的信息。接收到返回信息后隨即調(diào)用數(shù)據(jù)輸出模塊。對信息進行處理。產(chǎn)生相應的輸出。</p><p> 服務器程序的接收網(wǎng)絡數(shù)據(jù)模塊必須始終處于活動狀態(tài).接收到數(shù)據(jù)后,調(diào)用數(shù)據(jù)處理/查詢模塊對數(shù)據(jù)庫進行訪問,完成后調(diào)用網(wǎng)絡發(fā)送模塊,將信息返回客戶機。</p><p><b> 3.6
95、.2運行控制</b></p><p> 運行控制將嚴格按照各模塊間函數(shù)調(diào)用關(guān)系來實現(xiàn)。在各事務中心模塊中,需對運行控制進行正確的判斷,選擇正確的運行控制路徑。</p><p> 在網(wǎng)絡傳方面,客戶機在發(fā)送數(shù)據(jù)后,將等待服務器的確認收到信號,收到后,再次等待服務器發(fā)送回答數(shù)據(jù),然后對數(shù)據(jù)進行確認。服務器在接到數(shù)據(jù)后發(fā)送確認信號,在對數(shù)據(jù)處理,訪問數(shù)據(jù)庫后,將返回信息送回客戶機
96、,并等待確認。</p><p><b> 3.6.3運行時間</b></p><p> 在軟體的需求分析中,對運行時間的要求為必須對作出的操作有較快的反應。網(wǎng)絡硬件對運行時間有最大的影響,當網(wǎng)絡負載量大時,對操作反應將受到很大的影響。所以將采用高速WIFI 網(wǎng)絡,實現(xiàn)客戶機與服務器之間的連接,以減少網(wǎng)絡傳輸上的開銷。其次是服務器的性能,這將影響對數(shù)據(jù)庫訪問時間即操
97、作時間的長短,影響加大客戶機操作的等待時間,所以必須使用高性能的服務器,建議使用 Pentium III 處理器。硬件對本系統(tǒng)的速度影響將會大于軟件的影響。</p><p> 3.7系統(tǒng)數(shù)據(jù)結(jié)構(gòu)設(shè)計</p><p> 3.7.1邏輯結(jié)構(gòu)設(shè)計</p><p> 用戶數(shù)據(jù)庫表及數(shù)據(jù)字典定義:當用戶申請時,用戶信息將被保存進入表3.2中。</p>&l
98、t;p> 表3.2用戶數(shù)據(jù)庫表</p><p> 用戶好友數(shù)據(jù)庫表及數(shù)據(jù)字典定義:當用戶注冊完成后,系統(tǒng)會自動建立一張表分配給該用戶,該用戶的好友信息則保存入表3.3中。</p><p> 表 3.3用戶好友數(shù)據(jù)庫表</p><p> 用戶聊天信息表(_ID)客戶端:客戶端數(shù)據(jù)庫表,用戶的聊天信息則保存在表3.3中。</p><p&
99、gt; 表3.4 用戶聊天信息表</p><p> 3.7.2物理結(jié)構(gòu)設(shè)計(圖3.14)</p><p><b> 圖3.14</b></p><p> 由于Android聊天系統(tǒng)的服務器端數(shù)據(jù)庫使用的是oracle的數(shù)據(jù)庫,所以物理結(jié)構(gòu)設(shè)計有以下特點:</p><p> 每個數(shù)據(jù)項的存儲操作,訪問操作以及保密
100、工作都是在表結(jié)構(gòu)中來完成,由sql查詢語句來完成存儲訪問操作,由oracle的數(shù)據(jù)庫來完成數(shù)據(jù)的保密工作。</p><p> 為各個模塊和功能提供數(shù)據(jù)支持的表在數(shù)據(jù)庫中都采用外鍵的方式來維持數(shù)據(jù)之間的關(guān)聯(lián)性。</p><p> 各個表的具體相關(guān)數(shù)據(jù)項的字段設(shè)置在子系統(tǒng)設(shè)計處有詳細說明。</p><p> 3.7.3數(shù)據(jù)結(jié)構(gòu)與程序的關(guān)系(圖3.15)</p
101、><p><b> 圖3.15</b></p><p> 由于Android聊天系統(tǒng)的服務器后臺數(shù)據(jù)支持是基于oracle數(shù)據(jù)庫,使用java編程語言來完成的,所以數(shù)據(jù)結(jié)構(gòu)與程序之間的關(guān)系有以下特點:</p><p> 數(shù)據(jù)庫中的每個數(shù)據(jù)結(jié)構(gòu)(數(shù)據(jù)表)對應java語言中定義的一個類class,并在該類設(shè)有基本的set/get方法。</p
102、><p> 程序從數(shù)據(jù)庫提取數(shù)據(jù)和存儲數(shù)據(jù)都會將數(shù)據(jù)封裝成一個java對象class,然后通過sql語句來完成對數(shù)據(jù)庫的操作。</p><p> 通過java封裝的類class對象,來對前來界面和后臺界面提供數(shù)據(jù),達到在前后臺界面顯示用戶所需要的消息。</p><p> 3.8.系統(tǒng)出錯處理</p><p><b> 3.8.1
103、出錯信息</b></p><p> 程序在運行時主要會出現(xiàn)兩種錯誤: </p><p> 由于輸入信息,或無法滿足要求時產(chǎn)生的錯誤,稱為軟錯誤。 </p><p> 由于其他問題,如網(wǎng)絡傳輸超時等,產(chǎn)生的問題,稱為硬錯誤 。 </p><p> 軟錯誤,提示用戶出錯信息,由用戶做相應處理如表3.5。</p>
104、<p><b> 表 3.5軟錯誤表</b></p><p> 硬錯誤,提示用戶錯誤信息,由硬件維護人員來進行解決 如表3.6。</p><p><b> 表3.6硬錯誤表</b></p><p> 3.8.2補救措施</p><p> 3.8.2.1軟錯誤補救</p&g
105、t;<p> 用戶輸入數(shù)據(jù)類型錯誤,輸入數(shù)據(jù)不完整以及用戶操作失誤等軟錯誤,直接前臺顯示界面提示錯誤信息,由用戶自行處理。</p><p> 系統(tǒng)數(shù)據(jù)庫崩潰,系統(tǒng)遭到黑客攻擊以及系統(tǒng)前后臺界面顯示出現(xiàn)問題,則需要通過系統(tǒng)管理員來維護。</p><p> 3.8.2.2 硬錯誤補救</p><p> 采用磁盤做備份準備,使用oracle的備份服務
106、系統(tǒng)對數(shù)據(jù)庫數(shù)據(jù)進行備份,如果系統(tǒng)遭到破壞,用備份的數(shù)據(jù)進行還原,數(shù)據(jù)的備份和還原可以通過應用程序?qū)崿F(xiàn),也可以通過系統(tǒng)管理員直接使用oracle的備份系統(tǒng)進行備份。建議用戶每天對數(shù)據(jù)庫中的數(shù)據(jù)進行備份;</p><p> 當系統(tǒng)運行效率過低時,通過重新啟動可以重新組織數(shù)據(jù)庫索引,提高系統(tǒng)運行效率。</p><p> 在系統(tǒng)運行的過程中,可能會突發(fā)一些不可預測的故障,如斷電、死機等。為了
107、提高系統(tǒng)的安全性,我們采用了基于掛接操作系統(tǒng)接口的服務器自身監(jiān)控安全模型。在本系統(tǒng)的服務器操作系統(tǒng)中,通過遠程DLL注入技術(shù),修改操作系統(tǒng)中進程的導入地址表,掛接Windows操作系統(tǒng)的關(guān)機函數(shù),截獲Windows的關(guān)機消息,從而實現(xiàn)在服務器每次系統(tǒng)關(guān)機時,自動檢測當前是否有正在運行的財務業(yè)務,保證所有業(yè)務都已順利結(jié)束,并自動備份一次數(shù)據(jù)庫,再轉(zhuǎn)回Windows操作系統(tǒng)的關(guān)機執(zhí)行。從而保障了系統(tǒng)服務器的業(yè)務穩(wěn)定性,和數(shù)據(jù)完整性,提高了系
108、統(tǒng)的安全性和穩(wěn)定性。</p><p> 第四章 基于Android平臺的聊天系統(tǒng)實現(xiàn)</p><p><b> 4.1 服務端模塊</b></p><p><b> 服務端具體功能:</b></p><p> 登錄信息:檢查登錄信息是否正確,并向客戶端返回登錄信息,如信息正確。就將在線用戶發(fā)
109、給該用戶,并將該用戶的狀態(tài)發(fā)給各在線用戶。同時在服務器端顯示出來。</p><p> 聊天信息:轉(zhuǎn)發(fā)給消息指定的用戶。</p><p> 申請信息:自動分配6位用戶號碼,并保存該用戶,同時將信息返回給客戶端。</p><p> 用戶下線:將此用戶下線消息發(fā)給各客戶端,并改寫用戶在服務器端的狀態(tài)。</p><p><b> 服
110、務器端的具體實現(xiàn)</b></p><p> 如圖4.1所示,當服務端啟動服務系統(tǒng)會輸出“服務器已啟動..”。</p><p> 這時服務器處于線程等待狀態(tài),等待客戶端發(fā)送請求。</p><p> 圖 4.1 客戶端啟動</p><p><b> 主要代碼:</b></p><p&g
111、t; public void start() {</p><p> System.out.println(MyDate.getDateCN() + " 服務器已啟動...");</p><p><b> try {</b></p><p> while (isStarted) {</p><p&g
112、t; socket = serverSocket.accept();</p><p> String ip = socket.getInetAddress().toString();</p><p> System.out.println(MyDate.getDateCN() + " 用戶:" + ip + " 已建立連接");</p&g
113、t;<p> // 為支持多用戶并發(fā)訪問,采用線程池管理每一個用戶的連接請求</p><p> if (socket.isConnected())</p><p> executorService.execute(new SocketTask(socket));// 添加到線程池</p><p><b> }</b><
114、;/p><p> if (socket != null)</p><p> socket.close();</p><p> if (serverSocket != null)</p><p> serverSocket.close();</p><p> } catch (IOException e) {<
115、;/p><p> e.printStackTrace();</p><p> // isStarted = false;</p><p><b> }</b></p><p><b> }</b></p><p> 當有用戶鏈接時系統(tǒng)會輸出如圖4.2的信息。并且將該用戶
116、所暫用的線程加入線程池:</p><p> 圖 4.2 用戶連接</p><p><b> 關(guān)鍵代碼:</b></p><p> case LOGIN:</p><p> User loginUser = (User) read_tranObject.getObject();</p><p&g
117、t; System.out.println("!!!!!!!!!"+loginUser.getId());</p><p> ArrayList<User> list = dao.login(loginUser);</p><p> TranObject<ArrayList<User>> login2Object = new T
118、ranObject<ArrayList<User>>(</p><p> TranObjectType.LOGIN);</p><p> System.out.println("這個的大小是?。。。。?quot;+list.size());</p><p> System.out.println(MyDate.getDateC
119、N() + " 用戶asdf:"</p><p> + loginUser.getId() + " 上線了");</p><p> if (list != null) {// 如果登錄成功</p><p> TranObject<User> onObject = new TranObject<User&
120、gt;(</p><p> TranObjectType.LOGIN);</p><p> User login2User = new User();</p><p> login2User.setId(loginUser.getId());</p><p> onObject.setObject(login2User);</p
121、><p> /*for (OutputThread onOut : map.getAll()) {</p><p> onOut.setMessage(onObject);// 廣播一下用戶上線</p><p><b> }*/</b></p><p> map.add(loginUser.getId(), out)
122、;// 先廣播,再把對應用戶id的寫線程存入map中,以便轉(zhuǎn)發(fā)消息時調(diào)用</p><p> login2Object.setObject(list);// 把好友列表加入回復的對象中</p><p> System.out.println("是否為空?。。?!");</p><p><b> } else {</b>&l
123、t;/p><p> login2Object.setObject(null);</p><p><b> }</b></p><p> out.setMessage(login2Object);// 同時把登錄信息回復給用戶</p><p> System.out.println(MyDate.getDateCN()
124、 + " 用戶AAA:"</p><p> + loginUser.getId() + " 上線了");</p><p><b> break;</b></p><p><b> 4.2 客戶端模塊</b></p><p><b> 客戶端具
125、體功能</b></p><p> 登錄功能:建立與服務器的連接并登錄,能顯示登錄錯誤信息。</p><p> 界面顯示:將在線好友顯示在好友列表中,并可以通過點擊進入聊天界面,進行與好友的聊天</p><p> 聊天功能:當好友發(fā)送消息時顯示在聊天界面。用戶也同時可以在輸入框中輸入相應信息點擊發(fā)送與好友聊天。</p><p>
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于android平臺的聊天系統(tǒng)設(shè)計與實現(xiàn) 畢業(yè)論文
- 基于android平臺的聊天軟件設(shè)計與實現(xiàn)畢業(yè)設(shè)計論文
- 基于android平臺的聊天軟件設(shè)計與實現(xiàn)畢業(yè)設(shè)計論文
- 基于android平臺的聊天軟件設(shè)計與實現(xiàn)
- 畢業(yè)論文-基于java聊天系統(tǒng)設(shè)計與實現(xiàn)
- 基于java的聊天系統(tǒng)的設(shè)計與實現(xiàn)---畢業(yè)論文
- 畢業(yè)論文 基于java即時聊天系統(tǒng)的設(shè)計與實現(xiàn)
- 畢業(yè)論文:安全聊天系統(tǒng)的設(shè)計與實現(xiàn)
- 畢業(yè)論文:安全聊天系統(tǒng)的設(shè)計與實現(xiàn)
- 畢業(yè)論文-基于java的聊天系統(tǒng)的設(shè)計與實現(xiàn)
- 基于java的聊天系統(tǒng)的設(shè)計與實現(xiàn)---畢業(yè)論文
- 基于java即時聊天系統(tǒng)的設(shè)計與實現(xiàn)_畢業(yè)論文
- 基于java即時聊天系統(tǒng)的設(shè)計與實現(xiàn)_畢業(yè)論文
- 畢業(yè)論文--聊天系統(tǒng)的設(shè)計
- 基于java的聊天系統(tǒng)的設(shè)計于實現(xiàn)——畢業(yè)論文
- 畢業(yè)論文-基于java的聊天系統(tǒng)的設(shè)計與實現(xiàn) (2)
- 網(wǎng)絡多人聊天系統(tǒng)的設(shè)計與實現(xiàn)【畢業(yè)論文】
- 畢業(yè)論文--基于lan的聊天系統(tǒng)
- 基于java的聊天系統(tǒng)的設(shè)計于實現(xiàn)——畢業(yè)論文
- 畢業(yè)論文---聊天系統(tǒng)的設(shè)計與開發(fā)
評論
0/150
提交評論