版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p> 畢 業(yè) 設(shè) 計(論 文) </p><p> 題目 即時通訊聊天系統(tǒng) </p><p> 姓 名 </p><p> 院 系 </p><p> 專 業(yè) </p><p> 指導教師
2、 </p><p><b> 年 月 日</b></p><p> 即時通信聊天系統(tǒng)的設(shè)計與開發(fā)</p><p><b> 摘 要</b></p><p> 互聯(lián)網(wǎng)中的即時通訊聊天系統(tǒng)的研究已經(jīng)成為了當今網(wǎng)絡(luò)通訊技術(shù)發(fā)展的一個熱點,局域網(wǎng)內(nèi)的即時通訊聊天系統(tǒng)更是成為了當
3、今社會通訊技術(shù)發(fā)前沿陣地。局域網(wǎng)即時通訊軟件的誕生不僅加強推動了企業(yè)工作效率的提高,為培訓企業(yè)的教學帶來了新的思路和手段,還為人們之間的交流創(chuàng)建了一種新型的、廉價的、快訊的、簡便的工作方式,目前的即時通訊系統(tǒng)不僅僅是娛樂聊天的工具,更是影響著局域網(wǎng)內(nèi)部的管理及其交流方式。本系統(tǒng)采用客戶機/服務(wù)器(C/S)模式,本系統(tǒng)開發(fā)環(huán)境是JAVA 6.0,遵循網(wǎng)絡(luò)通訊技術(shù)基本數(shù)據(jù)傳輸協(xié)議TCP/IP協(xié)議,本課題的最基本的功能是通過計算機之間的文本數(shù)
4、據(jù)的互換的形式實現(xiàn)思想的交流和溝通,優(yōu)點是方便快捷。</p><p> 關(guān)鍵詞:數(shù)據(jù)傳輸,傳輸控制協(xié)議,服務(wù)器,客戶端,C/S模式THE DESIGN AND IMPLEMENTATION OF THE INSTANT </p><p> MESSAGING SYSTEM</p><p><b> ABSTRACT</b>&
5、lt;/p><p> The Internet chat of instant communication system has become the current network communication technology of the development of a hot, local area network of instant messaging chat system but also be
6、came today's society communication technology hair forward position. LAN instant messaging software birth not only strengthen promote the enterprise work efficiency, increase the enterprise training brings new ideas
7、and teaching means, for communication among people created a new, cheap, flash, simple</p><p> KEY WORDS: Data transmission, control protocol, server, client, C/S mode</p><p><b> 目 錄<
8、/b></p><p><b> 前 言1</b></p><p> 第1章 系統(tǒng)的需求分析3</p><p> 1.1 課題技術(shù)支持3</p><p> 1.2 系統(tǒng)分析3</p><p> 1.3 需求分析3</p><p> 1.4 相關(guān)理
9、論知識4</p><p> 1.4.1 網(wǎng)絡(luò)通信與網(wǎng)絡(luò)協(xié)議基礎(chǔ)4</p><p> 1.4.2 TCP/IP協(xié)議族4</p><p> 1.4.3 面向?qū)ο蟮拈_發(fā)過程5</p><p> 1.4.4 開發(fā)工具6</p><p> 1.4.5 運行環(huán)境6</p><p>
10、 1.4.6 開發(fā)方法的選擇7</p><p> 第2章 系統(tǒng)的總體設(shè)計9</p><p> 2.1 功能需求描述9</p><p> 2.2 目標系統(tǒng)要求9</p><p> 2.3 總體設(shè)計9</p><p> 第3章 系統(tǒng)主要功能模塊設(shè)計12</p><p> 3.
11、1 課題分析12</p><p> 3.1.1 系統(tǒng)協(xié)議12</p><p> 3.1.2 系統(tǒng)核心技術(shù)12</p><p> 3.2 客戶端設(shè)計圖例12</p><p> 3.2.1 客戶端流程圖12</p><p> 3.3 客戶端功能介紹及實現(xiàn)14</p><p>
12、 3.3.1 客戶端相關(guān)類的簡介14</p><p> 3.3.2 客戶端的管理類類的簡介20</p><p> 3.3.3 輔助類或接口20</p><p> 3.4 服務(wù)器設(shè)計圖例21</p><p> 3.4.1 服務(wù)器流程圖21</p><p> 3.5 服務(wù)器端功能介紹及實現(xiàn)22<
13、/p><p> 3.5.1 服務(wù)器端相關(guān)類的簡介23</p><p> 3.5.2 服務(wù)器與客戶端的數(shù)據(jù)傳遞原理24</p><p><b> 3.6總結(jié)24</b></p><p> 第4章 系統(tǒng)測試26</p><p> 4.1 課題測試26</p><p&
14、gt; 4.2 測試類型簡單介紹26</p><p> 4.2.1 單元測試26</p><p> 4.2.2 集成測試26</p><p> 4.2.3 有效性測試27</p><p> 4.2.4 系統(tǒng)測試27</p><p> 4.3 測試過程27</p><p>
15、 4.3.1 登錄測試27</p><p> 4.3.2 注冊測試27</p><p> 4.3.3 聊天測試29</p><p><b> 4.4 總結(jié)29</b></p><p><b> 結(jié) 論30</b></p><p><b> 謝
16、辭31</b></p><p><b> 參考文獻32</b></p><p><b> 前 言</b></p><p><b> 選題背景</b></p><p> 隨著互聯(lián)網(wǎng)技術(shù)的廣泛普及和應(yīng)用,通信和電子信息產(chǎn)業(yè)在全球迅猛發(fā)展起來,從而也帶來了軟件
17、技術(shù)人才需求量的不斷增加,軟件技術(shù)教育和人才培養(yǎng)成為社會所關(guān)注的一項重要戰(zhàn)略任務(wù)。為了加強軟件開發(fā)技術(shù)方面的相關(guān)知識的教育,為加強學員間的日常的學習交流,以及平時工作時問題的交流,于是進行自主研發(fā)局域網(wǎng)內(nèi)的即時通信系統(tǒng)。同時通過項目加強新同事間的交流與技術(shù)的配合,為以后的工作奠定良好的基礎(chǔ)。所以開發(fā)并研究了本課題。</p><p> 隨著網(wǎng)絡(luò)的普及,人們迫切希望能通過一種現(xiàn)代化的信息技術(shù)平臺,更高效的學習軟件開
18、發(fā)技術(shù)知識; 宏達科技有限公司也希望有這樣一種方式,借助它提高教學質(zhì)量和人才培養(yǎng)質(zhì)量。</p><p><b> 主要內(nèi)容及研究意義</b></p><p> 在信息爆炸、技術(shù)為王的今天,即時通訊技術(shù)得到了迅猛的發(fā)展,可對其背后的哲學思考卻被忽略和淡化,此文著重反思人的主體性,以期拋磚引玉,給即時通訊時代個人主體性的健康發(fā)展提供借鑒和現(xiàn)實的積極啟示。</p&
19、gt;<p> 該系統(tǒng)以建設(shè)一個專業(yè)的有特色的專業(yè)教學工具為出發(fā)點,以提高學員和廣大軟件開發(fā)愛好者的軟件開發(fā)技術(shù)知識,以利于更好的教學同時加強學員和老師、學員與學員之間的學習交流,以JAVA編程語言為基礎(chǔ),涵蓋了JAVA中的GUI、SWING、網(wǎng)絡(luò)編程、網(wǎng)絡(luò)通訊、多線程技術(shù)等一些JavaSE技術(shù)所開發(fā)</p><p> 該系統(tǒng)的主體是局域網(wǎng)聊天通信,它主要實現(xiàn)了用戶注冊、登錄功能,提供了單對單,
20、單對多之間的私人信息聊天,局域網(wǎng)內(nèi)之間的群聊,以及局域網(wǎng)內(nèi)人與人之間的文件傳輸?shù)裙δ?,它給學員提供了一個交流、互動的平臺,為學員的學習提供了堅實的學習平臺。在當今信息瞬息萬變的時代,在計算機普及千家萬戶的今天,此系統(tǒng)的開發(fā)在交流和現(xiàn)代化的教學體系改革方面發(fā)揮了積極的作用。</p><p><b> 論文的組織結(jié)構(gòu)</b></p><p> 第一部分:前言。介紹了論
21、文的選題背景、主要內(nèi)容和研究意義。</p><p> 第二部分:系統(tǒng)的需求分析。對系統(tǒng)的開發(fā)與設(shè)計進行需求分析。</p><p> 第三部分:系統(tǒng)的總體設(shè)計。對整個系統(tǒng)進行總體的概述說明。</p><p> 第四部分:系統(tǒng)主要功能模塊的設(shè)計。對各模塊的設(shè)計進行詳細說明。</p><p> 第五部分:局域網(wǎng)聊天系統(tǒng)測試。對系統(tǒng)的各個模塊
22、進行測試。</p><p> 第六部分:結(jié)論。對整個設(shè)計的總結(jié)。</p><p><b> 第七部分:謝辭。</b></p><p> 第八部分:參考文獻。</p><p> 第1章 系統(tǒng)的需求分析</p><p> 1.1 課題技術(shù)支持</p><p> 運用
23、面向?qū)ο笏枷?,通過較完善的挖掘,構(gòu)建穩(wěn)定的底層通訊框架。</p><p> 目標:“真實建?!薄白畲罂芍赜谩薄皩ψ兓袕椥浴?lt;/p><p> 手段:抽象封裝/多態(tài)/繼承</p><p> 準則:開閉原則/單一職責原則/對接口編程/里氏代換法則等</p><p> 工具:各種設(shè)計模式(單例/工廠/策略/代理/門面/適配器等)</
24、p><p><b> 1.2 系統(tǒng)分析</b></p><p> 應(yīng)用構(gòu)建通常分層實現(xiàn)表示層、業(yè)務(wù)層、持久層,結(jié)合該課題,</p><p> 業(yè)務(wù)層分析:課題核心是通訊,考慮到通訊是很多其他應(yīng)用實現(xiàn)的核心部分,建議搭建健壯并獨立的通訊平臺,以適應(yīng)未來系統(tǒng)擴展和移植,目前的短消息傳遞可以作為該平臺的基本擴展,以組件的形態(tài)插入到平臺上滿足需求。&
25、lt;/p><p> 數(shù)據(jù)訪問建議采用數(shù)據(jù)訪問對象,封裝對持久層的訪問細節(jié)。</p><p> 目前采用文件持久層,定制合理的文件格式,提高效能。并對持久層的未來擴展,比如改為數(shù)據(jù)庫存儲做好鋪墊。</p><p> 表示層應(yīng)脫離業(yè)務(wù)模型層,獨立出來,表示層調(diào)整不應(yīng)振動到業(yè)務(wù)層。</p><p> 表示層一般考慮用戶體驗問題,UI簡單易用并
26、美觀大方,才是最理想的軟件。</p><p><b> 1.3 需求分析</b></p><p> 聊天工具大多數(shù)由客戶端程序和服務(wù)器程序外加服務(wù)端,本程序采用客戶機/服務(wù)器架構(gòu)模式。通過Java提供的Socket類來連接客戶機和服務(wù)器并客戶機和服務(wù)器相互通行,由于聊天是多點對多點的聊天。主要有兩個應(yīng)用程序,分別為客戶程序和服務(wù)器程序。服務(wù)器應(yīng)用程序主要用于程序轉(zhuǎn)
27、發(fā),以及上所有用戶發(fā)送系統(tǒng)信息;客戶端程序主要用于客戶端聊天記錄的顯示和信息輸入,采用Client/Server體系結(jié)構(gòu),即客戶端/服務(wù)器結(jié)構(gòu)。聊天服務(wù)器專門用于監(jiān)控用戶狀態(tài)和轉(zhuǎn)發(fā)信息,客戶端負責接收消息用戶序列和消息文本發(fā)送到服務(wù)器。該聊天系統(tǒng)實現(xiàn)群聊用戶登錄,退出聊天系統(tǒng)等功能。</p><p> 1.4 相關(guān)理論知識</p><p> 本課題涉及到了網(wǎng)絡(luò)數(shù)據(jù)傳輸,需要了解相關(guān)的數(shù)
28、據(jù)網(wǎng)絡(luò)傳輸知識,網(wǎng)絡(luò)數(shù)據(jù)的傳輸是本課題不可繞過的技術(shù),所以了解相關(guān)網(wǎng)絡(luò)數(shù)據(jù)傳輸?shù)闹R是相當重要的。</p><p> 1.4.1 網(wǎng)絡(luò)通信與網(wǎng)絡(luò)協(xié)議基礎(chǔ)</p><p> Java語言可稱得上是當今Internet上最流行的編程語言。對一個網(wǎng)絡(luò)功能,其他語言需要數(shù)行或數(shù)頁代碼,而Java也許只需要一條或幾條語句。下面介紹Java網(wǎng)絡(luò)編程涉及的計算機網(wǎng)絡(luò)的術(shù)語、概念。</p>
29、<p> 計算機網(wǎng)絡(luò)是計算機技術(shù)與通信技術(shù)相結(jié)合而形成的一種新的通信形式。計算機網(wǎng)絡(luò)由硬件和軟件組成,軟件包括網(wǎng)絡(luò)操作系統(tǒng)、通信軟件和網(wǎng)絡(luò)通信用的通信協(xié)議。</p><p> Internet允許各個部門和組織根據(jù)自己的需求和經(jīng)濟能力選擇自己的網(wǎng)絡(luò),然后再尋求一種方法將所有類型的網(wǎng)絡(luò)互連起來。Internet網(wǎng)絡(luò)體系結(jié)構(gòu)也稱為Internet網(wǎng)絡(luò)通信協(xié)議,它分為四個層次,TCP/IP協(xié)議(Tra
30、nsmission Control Protocol/Internet Protocol,傳輸控制協(xié)議/網(wǎng)際協(xié)議)是它不同層次協(xié)議的總稱。</p><p> 1.4.2 TCP/IP協(xié)議族</p><p> TCP/IP協(xié)議族中的傳輸層和互聯(lián)網(wǎng)層協(xié)議為網(wǎng)絡(luò)中的各主機提供通信服務(wù),它們也是實現(xiàn)應(yīng)用層協(xié)議的基礎(chǔ)。傳輸層TCP協(xié)議和互聯(lián)網(wǎng)層IP協(xié)議是TCP/IP協(xié)議族中的核心協(xié)議。<
31、/p><p> 1. 傳輸控制協(xié)議TCP</p><p> 傳輸控制協(xié)議(TCP)TCP/IP協(xié)議族中的傳輸層,提供可靠的數(shù)據(jù)傳輸服務(wù)。TCP是一種面向連接的傳輸層協(xié)議,意味著該協(xié)議準備發(fā)送數(shù)據(jù)時,通信之間必須建立起一個邏輯上的連接。TCP協(xié)議位于IP協(xié)議的上層,通過提供效驗、流控制及序列信息彌補IP協(xié)議可靠性的缺陷。</p><p> 2. 互聯(lián)網(wǎng)層協(xié)議IP&l
32、t;/p><p> 互聯(lián)網(wǎng)層協(xié)議(IP)屬于TCP/IP模型的互聯(lián)網(wǎng)層。提供關(guān)于數(shù)據(jù)應(yīng)如何傳輸以及傳輸?shù)胶翁幍男畔ⅰP是一種是TCP/IP可用于網(wǎng)絡(luò)連接的協(xié)議,即TCP/IP可跨域多個局域網(wǎng)段或通過路由器跨域多種類型的網(wǎng)絡(luò)。在一個網(wǎng)際環(huán)境中,被連接在一起的單個網(wǎng)絡(luò)被稱為子網(wǎng)。</p><p> 數(shù)據(jù)幀的IP部分被稱為一個IP數(shù)據(jù)包,IP數(shù)據(jù)包如同數(shù)據(jù)的封面,包含了路由器在子網(wǎng)中傳輸數(shù)據(jù)所
33、在必須的信息。IP數(shù)據(jù)包包括頭和數(shù)據(jù),總長度不能超過65535字節(jié)。</p><p> IP協(xié)議是一種不可靠的、無連接的協(xié)議。然而,TCP/IP協(xié)議族中更高層協(xié)議可使用IP信息確保數(shù)據(jù)包按正確的地址進行傳輸。IP數(shù)據(jù)包并不包含一個校驗和部件,包頭校驗僅僅驗證IP包頭中路由信息的完整性。如果當數(shù)據(jù)包被接收時伴隨信息的校驗和值不正確,則數(shù)據(jù)包將被認為已破壞并被拋棄,同時,一個新的數(shù)據(jù)包被發(fā)送。</p>
34、<p> 3. 用戶數(shù)據(jù)包協(xié)議UDP</p><p> 用戶數(shù)據(jù)包協(xié)議UDP(User Datagram Protocol),位于TCP/IP模型的傳輸層。不同于TCP的是,它是一種無連接的傳輸服務(wù),它不保證數(shù)據(jù)包以正確的順序接收。</p><p> 1.4.3 面向?qū)ο蟮拈_發(fā)過程</p><p> 面向?qū)ο蟮能浖_發(fā)和相應(yīng)的面向?qū)ο蟮膯栴}求解是
35、當今計算機技術(shù)發(fā)展的重要成果和趨勢之一,面向?qū)ο缶幊叹邆淞藥讉€優(yōu)點,比如:代碼維護方便、可擴展性好、支持代碼重用技術(shù)等等。這些優(yōu)點是面向過程編程語言所不具備的。下面我們就來談?wù)劽嫦驅(qū)ο蠹夹g(shù)的這些優(yōu)點:</p><p><b> 1. 模塊化</b></p><p> 模塊化是面向?qū)ο缶幊讨械囊粋€特征。實體被表示為類和同一名字空間中具有相同功能的類,我們可以在名字空
36、間中添加一個類而不會影響該名字空間的其他成員。</p><p><b> 2. 可擴充性</b></p><p> 是對現(xiàn)代應(yīng)用軟件提出的又一個重要要求,即要求應(yīng)用軟件能夠很方便,容易的進行擴充和修改,這種擴充和修改的范圍不但涉及到軟件的內(nèi)容,也涉及到軟件的形式和工作機制。</p><p> 面向?qū)ο缶幊虖谋举|(zhì)上支持擴充性。如果有一個具有
37、某種功能的類,就可以很快地擴充這個類,創(chuàng)建一個具有擴充的功能的類。</p><p> 面向?qū)ο蟮某绦蛟O(shè)計可以用很好的可擴充性.這是由于類可以根據(jù)人對事物的理解而進行豐富,沒有必要進行作大的改動,可以利用繼承,對新的類添加屬性和方法.用它可以生成系統(tǒng)的簡單雛形,在征求用戶的意見,在加入新的類,以及類的方法與屬性等。</p><p><b> 3. 代碼重用</b>&
38、lt;/p><p> 可重用性是面向?qū)ο筌浖_發(fā)的一個核心思路.面向?qū)ο蟪绦蛟O(shè)計的抽象,封裝,繼承,多態(tài)的四大特點都無一例外,或多或少的圍繞著可重用性這個核心并為之服務(wù)。</p><p> 由于功能是被封裝在類中的,并且類是作為一個獨立實體而存在的,提供一個類庫就非常簡單了。</p><p> 1.4.4 開發(fā)工具</p><p> 采用
39、jdk1.6開發(fā)包,Java運行環(huán)境為:Java(TM) SE Runtime Environment (build 1.6.0_10-b33)</p><p> 開發(fā)工具:Myeclipse8.5</p><p> 1.4.5 運行環(huán)境</p><p><b> 硬件環(huán)境</b></p><p> 處理器:In
40、terCR300 或更高</p><p> 內(nèi)存:128MB或更高(建議256MB)</p><p> 硬盤空間:80MB以上</p><p><b> 軟件環(huán)境</b></p><p> 軟件環(huán)境是一個系統(tǒng)開發(fā)的工具,它取決于開發(fā)人員對軟件的熟悉程度,如果開發(fā)人員選擇一個不熟悉的軟件開發(fā)會大大增加開發(fā)系統(tǒng)所需要
41、投入的成本,所以說選擇軟件環(huán)境也是很重要的。</p><p> 操作系統(tǒng): Windows 2000/Windows XP</p><p> 軟件開發(fā)語言:JAVA</p><p> 1.4.6 開發(fā)方法的選擇</p><p> 在開發(fā)方法的選擇上,選擇了演繹式原型法與生命周期法相結(jié)合的方法。具體來說,就是在系統(tǒng)開發(fā)之前對系統(tǒng)有一個總
42、體框架設(shè)想,各功能單元的結(jié)構(gòu)和功能也比較清楚,但是還沒有具體實現(xiàn)。系統(tǒng)完成什么功能,分成哪幾個部分,各個部分又有哪幾個模塊,都已理解掌握,且以后不需要做更大的變動,只是具體到每個模塊,還沒有全部實現(xiàn)。具體地設(shè)計可能是完全實現(xiàn)一個模塊,也可能是用一個效率高地模塊代替一個舊模塊。信息系統(tǒng)的開發(fā)是一項比較復雜的工作,我們必須選用科學的有效的開發(fā)方法。近年來,國內(nèi)外已逐步總結(jié)出一些開發(fā)信息系統(tǒng)的方法和技術(shù),但是,從目前的情況來看,系統(tǒng)的開發(fā)技術(shù)
43、仍是一個比較薄弱的環(huán)節(jié)。那么根據(jù)本系統(tǒng)開發(fā)的要求,本系統(tǒng)選擇了生命周期法和原型法相結(jié)合的方法。現(xiàn)具體介紹如下:</p><p> 生命周期這個概念源于系統(tǒng)工程方法。廣義地說,任何系統(tǒng)均有其發(fā)生、發(fā)展、成熟、消亡或更新?lián)Q代的過程,這個過程稱為系統(tǒng)的生命周期。主要包括系統(tǒng)調(diào)查階段、系統(tǒng)分析、系統(tǒng)設(shè)計、系統(tǒng)實施及系統(tǒng)維護與評價五個部分。根據(jù)系統(tǒng)設(shè)計而對整個系統(tǒng)實施,包括物理實施,程序設(shè)計,調(diào)試等。實施是最后的一步,關(guān)
44、系著最后的成功。</p><p> 在建筑學和機械設(shè)計學中,“原型”指的是其結(jié)構(gòu)、大小和功能都與某個物體相類似的模擬該物體的原始模型。在管理信息系統(tǒng)開發(fā)中,用“原型”來形象地表示系統(tǒng)的一個早期可運行版本,它能反映新系統(tǒng)的部分重要功能和特征。“原型方法”則是利用原型輔助開發(fā)系統(tǒng)的一種新方法。原型方法要求在獲得一組基本的用戶需求后,快速地實現(xiàn)新系統(tǒng)的一個“原型”,用戶、開發(fā)者及其他有關(guān)人員在試用原型的過程中,加強通
45、信和反饋,通過反復評價和反復修改原型系統(tǒng),逐步確定各種需求的細節(jié),適應(yīng)需求的變化,從而最終提高新系統(tǒng)的質(zhì)量。因此可以認為原型方法確定用戶需求的策略,它對用戶需求的定義采用啟發(fā)的方式,引導用戶在對系統(tǒng)逐漸加深理解的過程中作出響應(yīng)。</p><p> 原型法主要包括確定系統(tǒng)基本需求階段、構(gòu)造初始原型階段、原型的使用評價階段、修改原型階段和確定模型后的處理階段。</p><p> 原型法的基
46、本思想是:憑借著系統(tǒng)分析人員對用戶要求的理解,在強有力的軟件環(huán)境支持下,快速地給出一個實實在在的模型(或稱原型、雛形),然后與用戶反復協(xié)商修改,最終形成實際系統(tǒng)。</p><p> 在本系統(tǒng)中選擇了演化型(EvolutionaryPrototying)原型法,其目的不在于改進規(guī)格說明和用戶需求,而是將系統(tǒng)改造得易于變化,在改進原型的過程中將原型演化成最終系統(tǒng)。它將原型方法的思想貫穿到系統(tǒng)開發(fā)全過程,對滿足需求的
47、改動較為適合。</p><p> 第2章 系統(tǒng)的總體設(shè)計</p><p> 2.1 功能需求描述 </p><p> 聊天工具大多數(shù)由客戶端程序和服務(wù)器程序外加服務(wù)端,本程序采用客戶機/服務(wù)器架構(gòu)模式。通過Java提供的Socket類來連接客戶機和服務(wù)器并客戶機和服務(wù)器相互通行,由于聊天是多點對多點的聊天。主要有兩個應(yīng)用程序,分別為客戶程序和服務(wù)器程序。服務(wù)
48、器應(yīng)用程序主要用于程序轉(zhuǎn)發(fā),以及上所有用戶發(fā)送系統(tǒng)信息;客戶端程序主要用于客戶端聊天記錄的顯示和信息輸入,采用Client/Server體系結(jié)構(gòu),即客戶端/服務(wù)器結(jié)構(gòu)。聊天服務(wù)器專門用于監(jiān)控用戶狀態(tài)和轉(zhuǎn)發(fā)信息,客戶端負責接收消息用戶序列和消息文本發(fā)送到服務(wù)器。該聊天系統(tǒng)實現(xiàn)群聊用戶登錄,退出聊天系統(tǒng)等功能。</p><p> 2.2 目標系統(tǒng)要求</p><p> 整體上要實現(xiàn)對用戶注
49、冊,登陸,好友上線,好友下線,單發(fā)消息,群發(fā)消息等功能。</p><p><b> 2.3 總體設(shè)計</b></p><p> 為了使本系統(tǒng)在設(shè)計中更加方便和直觀,所以使用了面向?qū)ο蟮脑O(shè)計思想。面向?qū)ο笤O(shè)計不再是單純的從代碼的第一行一直編到最后一行,而是考慮如何創(chuàng)建類和對象,利用類和對象來簡化程序設(shè)計,并提供代碼的封裝和可重用性,便于程序的維護與擴展。</p
50、><p> 所謂的對象是一種抽象的名稱,用來對應(yīng)實現(xiàn)世界存在的"東西"。一個窗口、一個按鈕、一個菜單都可視為一個對象,而按鈕對象、菜單對象、又會出現(xiàn)在窗口對象中,因此按鈕對象、菜單對象便是窗口的組件之一。對象內(nèi)部的數(shù)據(jù)是不能隨意更改的,必須由外部向其傳遞信息,再由對象按其方法加以處理。用戶無需知道其任何細節(jié),操作是封閉的,對象之間能通過函數(shù)調(diào)用相互通信。</p><p>
51、 類可視為一個產(chǎn)品模具、一個模塊。在面向?qū)ο笤O(shè)計中,類是對象的原型,是對象的制作器。類的概念是面向?qū)ο蟪绦蛟O(shè)計最重要的特征。所謂類,是指由數(shù)據(jù)結(jié)構(gòu)及其相關(guān)操作所形成的集合,描述該類任一對象的共同的行為特征,是對一組性質(zhì)相同的對象的程序描述,概括了對象的共同性質(zhì)和數(shù)據(jù)。面向?qū)ο笤O(shè)計的核心是類的設(shè)計。</p><p> 本系統(tǒng)主要劃分為客戶端、服務(wù)器兩部分??蛻舳酥饕瓿蓪τ脩舭l(fā)送的信息進行處理、登錄、注冊的處理
52、,客戶端功能如圖2-1所示。</p><p> 圖2-1 客戶端功能圖</p><p> 服務(wù)器段主要是接受客戶端響應(yīng)的請求來就行處理,在客戶端發(fā)送給服務(wù)器的時候?qū)⒄埱蠓庋b成特定格式的對象發(fā)送給服務(wù)器,服務(wù)器根據(jù)請求來做出響應(yīng)的處理,服務(wù)器端的功能圖如圖2-2所示。</p><p> 圖2-2 服務(wù)器端功能圖</p><p> 第3章
53、 系統(tǒng)主要功能模塊設(shè)計</p><p><b> 3.1 課題分析</b></p><p> 系統(tǒng)需求分析由項目小組成員經(jīng)過多次的小組會議與討論,最終制定一套統(tǒng)一的系統(tǒng)設(shè)計框架(用例和類圖)。經(jīng)過討論為促進小組成員對課題核心技術(shù)的理解和掌握,在設(shè)計階段要求課題小組成員都要對課題核心技術(shù)進行相對的設(shè)計,另外要完成系統(tǒng)部分具體功能的實現(xiàn)。</p><
54、;p> 3.1.1 系統(tǒng)協(xié)議</p><p> 本系統(tǒng)為即時通信系統(tǒng),主要以傳遞信息為主,經(jīng)過分析制定信息傳遞格式為:定義一個類,讓類實現(xiàn)可序列化接口,類中定義其需要傳輸?shù)男畔槠涑蓡T變量,信息以字可以序列化的對象進行傳遞。</p><p> 3.1.2 系統(tǒng)核心技術(shù)</p><p> 1. 客戶端:客戶端利用對套接字輸入流、輸出流進行傳遞保持連接的持
55、續(xù)。設(shè)計一個工具類,其類定義兩個MAP成員變量,用于存儲單獨聊天窗口和群聊聊天窗口。在定義一個工具類存儲好友列表窗體。</p><p> 2. 服務(wù)器端:采用多線程,定義信息處理接口,利用MAP存取在線用戶與其對應(yīng)的輸出流,采用數(shù)據(jù)庫技術(shù)存儲用戶的各種信息。</p><p> 3.2 客戶端設(shè)計圖例</p><p> 3.2.1 客戶端流程圖</p>
56、;<p> 客戶端功能圖簡明扼要地展現(xiàn)了客戶端的工作流程,如圖3-1所示。</p><p> 圖3-1 客戶端流程圖</p><p> 3.3 客戶端功能介紹及實現(xiàn)</p><p> 客戶端是多個圖形界面的組合,包括注冊界面、登錄界面、好友列表界面和聊天窗體界面,各個圖形界面完成各自的功能。其主要功能如下:</p><p&g
57、t; (1) 完成用戶的注冊;</p><p> (2) 客戶的登陸;</p><p> (3) 客戶信息之間的單聊、群發(fā)。</p><p> 3.3.1 客戶端相關(guān)類的簡介</p><p> 1. 客戶端相關(guān)類的簡介——QqClientLogin類</p><p> 功能:qq客戶端登錄界面</p&
58、gt;<p><b> 登錄界面實現(xiàn)介紹:</b></p><p> 整個Frame由北部,中部,南部三個部分組成。北部有一個Label; 中部有一個Panel(panel2),而這個Panel是一個3行3列的網(wǎng)格布局;南部有一個Panel(panel1) ,這個panel上有三個按鈕。登錄界面如圖3-3所示。</p><p><b>
59、圖3-3 登錄界面</b></p><p> 注冊窗體:單機登錄界面注冊向?qū)t關(guān)閉當前登錄窗體,彈出注冊窗體,注冊窗體需要用戶注冊用戶的基本信息,注冊窗體如圖3-4所示。</p><p><b> 圖3-4 注冊窗體</b></p><p> 2. 客戶端相關(guān)類的簡介——QqFriendList類</p><
60、;p> 功能:qq客戶端好友列表框界面</p><p> InfomBack類中更新在線的好友情況,關(guān)鍵代碼如下:</p><p> boolean b = (Boolean) informBack.get(0);</p><p> if (b) {// 如果為真,用戶上線通知</p><p> User user = (Us
61、er) informBack.get(1);</p><p> System.out.println(user.getNickName() );</p><p> rf.add(user);// 添加到界面中</p><p> System.out.println(user.getNickName()+"上線");</p>&
62、lt;p> } else {// 否則為下線通知</p><p> rf.remove(from);</p><p> System.out.println(from + "下線了");</p><p><b> }</b></p><p> Infom類中更新離線線的好友情況<
63、/p><p><b> if(!b){</b></p><p> Updatable updateable</p><p> =(Updatable)MessageContextForServer.getNeed("Updatable");</p><p> User user=(User)in
64、formback.get(1);</p><p> updateable.update(user);</p><p> MessageContextForServer.removeOutLine(from); Iterator<Sendable> sendable = </p><p> MessageContextForServer
65、.getOnLineValue();</p><p> while(sendable.hasNext()){</p><p><b> try {</b></p><p> sendable.next().send(message);</p><p> } catch (IOException e) {</
66、p><p> e.printStackTrace();</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> 好友列表框?qū)崿F(xiàn)介紹: </p><p&
67、gt; 這個列表框是個選項卡布局。分為“我的好友”,“陌生人”兩個選項卡。在此,只實現(xiàn)我的好友選項卡,其余兩個制作成兩個按鈕,不實現(xiàn)其功能。整個Panel(Panel1是個BorderLayout布局)由北部,中部,南部三個部分組成。北部有一個Button(我的好友);中部有一個ScrollPane (該控件中還有Panel(Panel2),該Panel是一個N行一列的網(wǎng)格布局(假設(shè)有50個好友)。其中存放好友頭像和編號(好友頭像由L
68、abel數(shù)組處理));南部還有一個Panel(Panel3)(該Panel是一個2行1列的網(wǎng)格布局,其上放著兩個按鈕“陌生人”,群發(fā)信息”)。總共用到三個Panel,注意順序。好友列表界面如圖3-5所示。</p><p><b> 圖3-5 好友列表</b></p><p> 3. 客戶端相關(guān)類的簡介——QqChat類</p><p>
69、功能:這是與好友單聊的界面如圖3-6 聊天窗體</p><p> 聊天界面實現(xiàn)介紹: </p><p> 整個Frame只有四個控件組成。一個文本域(TextArea),兩個面板(Panel), 兩個文本框(TextField),三個按鈕(Button)。這個Frame是個默認的BorderLayout布局,中部是個文本域;南部是個面板,而這個面板上面有一個文本框和一個按鈕;北部是個面
70、板,而這個面板是個默認的BorderLayout布局,北部有一個文本框,西部和東部各有一個按鈕。聊天窗體如圖3-6所示。</p><p><b> 圖3-6 聊天窗體</b></p><p> 4. 客戶端相關(guān)類的簡介——QqAllChat類</p><p> 功能:這是與好友群聊的界面</p><p> sho
71、wAllMessage(Message m)顯示群聊信息</p><p> 聊天界面實現(xiàn)介紹: </p><p> 整個Frame只有四個控件組成。一個文本域(TextArea),一個面板(Panel), 一個文本框(TextField),一個按鈕(Button)。這個Frame是個默認的BorderLayout布局,中部是個文本域;南部是個面板,而這個面板上面有一個文本框和一個按鈕。
72、</p><p> 5. 客戶端相關(guān)類的簡介——ClientConServerThread類</p><p> 功能: 這是客戶端和服務(wù)器端保持通訊的線程。不斷的讀取從服務(wù)器端發(fā)來的信息并進行判斷是哪類型的信息,然后做相應(yīng)的處理。</p><p> 功能描述:本系統(tǒng)之間的通信遵守一定的協(xié)議當用戶登錄的時候?qū)⒆约旱膸ぬ柮艽a與登錄的標志發(fā)送給服務(wù)器,服務(wù)器接收到信
73、息以后解析一下信息,驗證帳號密碼是否正確,若是正確則客戶端與服務(wù)器建立連接,同時服務(wù)器將上線好友的信息發(fā)送給每一個在線的好友,刷新好友列表,同樣的當好友下線的時候發(fā)送信息給服務(wù)器,服務(wù)器進行解析將下線好友信息發(fā)送過給每一個在線好友進行好友列表的刷新,當單發(fā)群發(fā)的時候都發(fā)送信息給服務(wù)器,服務(wù)器根據(jù)之前定力的協(xié)議進行處理,發(fā)送給相應(yīng)的用戶。</p><p> //判斷接收到的是否是好友上線的信息</p>
74、<p> boolean b = (Boolean) loginback.get(0);</p><p> if (b) {// 如果為真,登陸成功</p><p> User user = (User) loginback.get(1);</p><p> rf.add(user);// 添加自己的信息</p><p>
75、; ArrayList<User>onlineUser=(ArrayList<User>)loginback.get(2);</p><p> for (User u : onlineUser) {</p><p> rf.add(u);// 添加在線好友的信息</p><p><b> }else{</b>&l
76、t;/p><p> int n = (Integer) loginback.get(1);</p><p> if (n == 0) {</p><p> JOptionPane.showMessageDialog(null, "此用戶已登錄!", "錯誤",JOptionPane.ERROR_MESSAGE);</p
77、><p><b> } else {</b></p><p> JOptionPane.showMessageDialog(null, "賬戶或密碼錯誤!", "錯誤",JOptionPane.ERROR_MESSAGE);</p><p><b> }</b></p>
78、<p><b> }</b></p><p> 6. 客戶端相關(guān)類的簡介——QqClientConServer類</p><p> 功能:這是客戶端連接服務(wù)器的后臺</p><p> 驗證用戶注冊、登錄信息的地方,若登錄成功為該用戶啟動與服務(wù)器通訊的線程。</p><p> 當用戶登錄的時候
79、啟動一個線程將自己的帳號密碼進行處理,處理成特定的格式,發(fā)送給服務(wù)器服務(wù)器將帳號、密碼提取出來,與服務(wù)器中保存的信息進行比較,如果帳號密碼都正確則,讓客戶端與服務(wù)器成功連接,將好友的信息發(fā)送給每一個好友。</p><p> 3.3.2 客戶端的管理類類的簡介</p><p> 1. ManageClientConServerThread類</p><p> 功
80、能:這是一個管理客戶端和服務(wù)器保持通訊的線程類</p><p> 使用HashMap將用戶與該用戶與服務(wù)器通訊的線程進行綁定</p><p> addClientConServerThread(String qqId,ClientConServerThread ccst)</p><p> ClientConServerThread. </p>
81、<p> getClientConServerThread(String qqId)通過qqId取得該線程</p><p> 2. ManageQqFriendList類</p><p> 功能:管理好友列表的界面類</p><p> 使用HashMap將用戶自己與自己的好友列表進行綁定</p><p> addQqFri
82、endList(String qqid,QqFriendList qqFriendList)</p><p> QqFriendList getQqFriendList(String qqId)</p><p> 3. ManageQqChat類</p><p> 功能:這是一個管理用戶聊天界面的類</p><p> 使用HashMa
83、p將和每個好友與對應(yīng)的聊天界面進行綁定</p><p> addQqChat(String loginIdAndFriendId,QqChat qqChat)</p><p> getQqChat(String loginIdAndFriendId)獲取聊天界面</p><p> 4. ManageQqAllChat類</p><p>
84、 功能:這是一個管理用戶群聊天界面的類</p><p> 使用HashMap將和每個好友與對應(yīng)的群聊天界面進行綁定</p><p> addQqAllChat(String loginIdAndFriendId,QqAllChat qqAllChat)</p><p> getQqAllChat(String loginIdAndFriendId)獲取群聊天
85、界面</p><p> 3.3.3 輔助類或接口</p><p> 可序列化類:為了課題的實現(xiàn)方便,數(shù)據(jù)的傳輸利用了JAVA語言中特有的一個語言特點——對象的可序列化。利用對象的可序列話,實現(xiàn)了數(shù)據(jù)在網(wǎng)絡(luò)中的傳輸。必須注意一點的是,因為是實現(xiàn)在不同獨立計算機上的數(shù)據(jù)傳輸,所以服務(wù)器與客戶端都有一份可序列化類的包,其序列化編號必須一致,這樣在數(shù)據(jù)傳輸過程中服務(wù)器與客戶端才能夠認識該序列化
86、的對象,這些序列化對象其實就相當于服務(wù)器與客戶端之間的一個協(xié)議。</p><p> 可序列化類——傳遞的信息類:Message類</p><p> 該類是信息傳遞包,是普通的信息在服務(wù)器與客戶端之間傳遞信息的最基本的可序列化對象,該包是客戶端之間聊天信息傳輸?shù)妮d體,里面包含了通訊信息的基本內(nèi)容。</p><p> 可序列化類——用戶信息類:User類</
87、p><p> 該類是傳輸用戶登錄信息的包,其成員變量是登錄界面輸入的帳號與密碼,通過該類的包裝傳輸?shù)椒?wù)器,服務(wù)器進行驗證。其用途在連接服務(wù)器是發(fā)送。</p><p> 定義統(tǒng)一的信息類型接口:MessageType接口(為了客戶查看的方便)</p><p> public interface MessageType {</p><p>
88、 String message_register_fail = "-1";//表明用戶注冊失敗</p><p> String message_register = "0";//表明用戶注冊</p><p> String message_succeed = "1";//表明登錄成功</p><p>
89、 String message_login_fail = "2";//表明登錄失敗</p><p> String message_comm_mes = "3";//普通信息包</p><p> String message_get_onLineFriend = "4";//要求的在線好友包</p><p&
90、gt; String message_ret_onLineFriend = "5";//返回在線好友的包</p><p> String message_login = "7";//表明用戶登錄</p><p> String message_chatall_mes = "8";//群聊信息包</p><
91、p> String message_file = "9";//文件傳輸包</p><p> String message_live_onLineFriend = "10";//要求的下線好友包</p><p><b> }</b></p><p> 3.4 服務(wù)器設(shè)計圖例</p>
92、<p> 3.4.1 服務(wù)器流程圖</p><p> 服務(wù)器端流程圖簡明扼要地展現(xiàn)了服務(wù)器端的工作流程,如圖3-7所示。</p><p> 圖3-7 服務(wù)器流程圖</p><p> 3.5 服務(wù)器端功能介紹及實現(xiàn)</p><p> 服務(wù)器起到中轉(zhuǎn)信息,服務(wù)器端用于接收客戶端發(fā)來的各種信息類型(注冊信息、登錄信息、好友上
93、線信息、好友下線信息、普通聊天信息、文件傳輸信息以及群內(nèi)聊天信息),并根據(jù)不同的信息類型作相應(yīng)的信息處理,用戶好友管理,用戶注冊等等核心功能,都要在服務(wù)器的正常運行下才能正確的執(zhí)行這些功能,因此服務(wù)器的好壞直接關(guān)系到整個局域網(wǎng)聊天系統(tǒng)的好壞,服務(wù)器端的設(shè)計也相應(yīng)的成為了本系統(tǒng)的核心設(shè)計。其主要功能為:實現(xiàn)連接來自不同端口的socket,并為之提供獨立線程,完成信息的轉(zhuǎn)發(fā)。</p><p> 3.5.1 服務(wù)器端
94、相關(guān)類的簡介</p><p> 1. 服務(wù)器相關(guān)類的簡介——MyQqServer類</p><p> 功能: qq服務(wù)器端在監(jiān)聽、等待某個qq客戶端,并進行連接。</p><p> 驗證注冊的用戶是否存在;</p><p> 驗證登錄的用戶是否存在,若存在登錄的用戶則啟動與該客戶端的通信線程。</p><p>
95、 2. 服務(wù)器相關(guān)類的簡介——ManageClientThread類</p><p> 功能: 用于綁定管理用戶id和服務(wù)器與用戶通信的線程,用HashMap將用戶和與客戶端通訊線程進行綁定。關(guān)鍵代碼如下:</p><p> public static HashMap<String,SerConClientThread> hm = </p><p>
96、; new HashMap<String,SerConClientThread>();</p><p> //向hm中添加一個客戶端通訊線程</p><p> public static void addClientThread(String uid,SerConClientThread ct) {</p><p> hm.put(uid,ct
97、);</p><p><b> }</b></p><p> 3.服務(wù)器相關(guān)類的簡介——SerConClientThread類</p><p> 功能:服務(wù)器和某個客戶端的通信線程,對從客戶端取得的消息進行判斷,然后做相應(yīng)的處理。</p><p> 服務(wù)器端接收到信息后提取出來相應(yīng)的信息判斷若id的值為空則為群聊
98、天則將信息發(fā)送給每一個在線的好友,如果不為空的時候就發(fā)送給對應(yīng)的好友。</p><p> 4.服務(wù)器相關(guān)類的簡介——MyServerFrame類</p><p> 功能:這是服務(wù)器端的控制界面,可以完成啟動服務(wù)器,關(guān)閉服務(wù)器。</p><p> 3.5.2 服務(wù)器與客戶端的數(shù)據(jù)傳遞原理</p><p> 服務(wù)器與客戶機之間存在著大量的
99、數(shù)據(jù)傳遞,主要通過3個過程:</p><p> 首先通過服務(wù)器端套接字ServerSocket的構(gòu)造方法構(gòu)建服務(wù)器套接字,并綁定特定端口。然后在客戶機端程序中,利用客戶端套接字Socket的構(gòu)造方法Socket(InetAdress addresss ,int port)創(chuàng)建一個套接字流,并將其連接到指定IP地址的指定端口號,其IP地址可以用InetAdress。getByname(服務(wù)器IP地址)表示,從而與
100、服務(wù)器IP地址可以表示為:InetAdress。getLocalHost(),port)</p><p> 在客戶端建立數(shù)據(jù)輸入流類ObjectInputStream的實例read,用于從服務(wù)器中讀取數(shù)據(jù),同時建立數(shù)據(jù)輸出流類ObjectOutputStream的實例write 用于上服務(wù)器發(fā)送數(shù)據(jù),從而構(gòu)造了客戶機與服務(wù)器之間的數(shù)據(jù)通道。</p><p> 通過類ObjectInpu
101、tStream的read()方法讀取來自數(shù)據(jù)流的數(shù)據(jù),如:</p><p> readObject() 讀取序列化對象。通過類ObjectOutputStream的writeObject()方法上數(shù)據(jù)流寫入數(shù)據(jù),如:writeObject ()寫入序列化</p><p><b> 對象。</b></p><p><b> 3.6
102、總結(jié)</b></p><p> 這個系統(tǒng)的總體設(shè)計主要分為客戶端、服務(wù)器兩大部分,客戶端登錄注冊的時候遵循一定的協(xié)議將客戶的信息發(fā)送給服務(wù)器,服務(wù)器進行解析若是登錄將好友的信息發(fā)送給在線的每一個好友,若是注冊將注冊的信息發(fā)送給服務(wù)器保存在服務(wù)器端,在發(fā)送消息的時候遵守格式發(fā)送信息給服務(wù)器,服務(wù)器判斷出來是群發(fā)還是單發(fā)單發(fā)就發(fā)送給相應(yīng)的用戶,群發(fā)的時候就發(fā)送給每一個在線的好友。</p>
103、<p><b> 第4章 系統(tǒng)測試</b></p><p><b> 4.1 課題測試</b></p><p> 在系統(tǒng)的詳細設(shè)計以及編碼過程進行完成之后,就要對辦公自動化管理系統(tǒng)的程序進行測試。軟件測試是軟件開發(fā)過程中的一個重要環(huán)節(jié)。軟件測試是為了發(fā)現(xiàn)程序中的錯誤而執(zhí)行程序的過程;好的測試方案是極可能發(fā)現(xiàn)迄今為止尚未發(fā)現(xiàn)的錯誤的
104、測試方案;成功的測試是發(fā)現(xiàn)了至今為止尚未發(fā)現(xiàn)的錯誤的測試。軟件測試是根據(jù)軟件開發(fā)各階段的規(guī)格說明和程序的內(nèi)部結(jié)構(gòu)而精心設(shè)計出一批測試用例,并利用測試用例來運行程序,以發(fā)現(xiàn)程序錯誤的過程。測試階段的主要任務(wù)是盡量發(fā)現(xiàn)程序錯誤,改正錯誤,直至程序的功能、性能滿足用戶需求。</p><p> 在課題測試階段,系統(tǒng)過分析,測試方案針對系統(tǒng)的登錄、注冊、在線人員的更新、單聊、多聊進行分布測試。測試主要分成兩部分,第一部分
105、測試主要是在開發(fā)期間,當完成單個組件或功能進行測試,這部分測試也成為白箱測試,即在開發(fā)者的測試,了解各個代碼的用途、作用,更具其知識解決相應(yīng)的問題;第二部分則是在測試階段進行的全面的測試,同時也稱為黑箱測試,該測試假設(shè)完全不知道代碼的情況下進行測試,主要測試課題還存在那些漏洞及課題在開發(fā)中沒有想到的功能等。</p><p> 4.2 測試類型簡單介紹</p><p> 4.2.1 單元
106、測試</p><p> 又稱模塊測試,是針對軟件設(shè)計的最小單元程序模塊進行測試的工作。其目的是發(fā)現(xiàn)模塊內(nèi)部的錯誤,修改這些錯誤使其代碼能夠正確運行。其中,多個功能獨立的程序模塊可并行進行測試。</p><p> 4.2.2 集成測試</p><p> 又稱組裝測試,它的任務(wù)是按照一定的策略對單元測試的模塊進行組</p><p> 裝,
107、并在組裝過程中進行模塊接口與系統(tǒng)功能測試。集成測試的策略主要有兩種:一次性組裝方式和增值式組裝方式。</p><p> 4.2.3 有效性測試</p><p> 又稱確認測試,目的是驗證軟件的有效性,即驗證軟件的功能和性能及其他特性是否符合用戶要求。軟件的功能和性能要求參照軟件需求說明書。</p><p> 4.2.4 系統(tǒng)測試</p><
108、p> 系統(tǒng)測試的目的是為了測試軟件安裝到實際應(yīng)用的系統(tǒng)中后,能否與系統(tǒng)的其余部分協(xié)調(diào)工作,以及對系統(tǒng)運行可能出現(xiàn)的各種情況的處理能力。</p><p><b> 4.3 測試過程</b></p><p> 4.3.1 登錄測試</p><p> 1. 若登錄密碼錯誤,如圖4-1所示:</p><p> 圖
109、4-1 登錄密碼錯誤</p><p> 測試結(jié)論:當密碼帳號輸入錯誤的時候彈出這個提示框。</p><p> 如果成功等錄,則界面轉(zhuǎn)向好友列表界面。</p><p> 4.3.2 注冊測試</p><p> 1. 注冊信息不符合規(guī)范,如圖4-2和4-3所示:</p><p> 圖4-2 注冊密碼和確認密碼不相
110、同</p><p> 測試結(jié)論:當兩次密碼輸入不一樣的時候出現(xiàn)錯誤提示。</p><p> 圖4-3 用戶名和密碼不能為空</p><p> 測試結(jié)論:注冊的時候密碼帳號沒有填寫時則出現(xiàn)錯誤提示</p><p> 注冊的帳號已存在,如圖4-4所示:</p><p> 圖4-4 用戶名已存在</p>
111、<p> 測試結(jié)論:注冊的帳號已經(jīng)存在則出現(xiàn)錯誤提示框</p><p> 注冊成功,如圖4-5所示:</p><p><b> 圖4-5 注冊成功</b></p><p> 測試結(jié)論:注冊成功的時候出現(xiàn)這個界面</p><p> 4.3.3 聊天測試</p><p> 聊
112、天功能的測試如圖如圖4-6所示:</p><p><b> 圖4-6聊天測試</b></p><p><b> 4.4 總結(jié)</b></p><p> 經(jīng)過一系列的測試,整個系統(tǒng)的功能基本上都已基本完成,注冊、登錄都已完成,相應(yīng)的提示都有。單聊、群聊功能也已經(jīng)實現(xiàn),消息的接收、用戶上線、下線也都已實現(xiàn),主要的缺陷就是
113、對上線、下線、消息的接收沒有明顯的提示,不便于用戶看到。</p><p><b> 結(jié) 論</b></p><p> 互聯(lián)網(wǎng)從誕生以來,就開影響這地球的每一個角落,給予了人類一種全新的生活方式,隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展,信息技術(shù)也層次不窮,即時通訊系統(tǒng)就是這么一種以聊天形式為主的廣受歡迎的互聯(lián)網(wǎng)技術(shù),即時通訊技術(shù)最基本的功能是通過計算機之間的文本數(shù)據(jù)的互換的形式實現(xiàn)思
114、想的交流與溝通,是一種方便快捷的通訊方式。本課題對即時通訊系統(tǒng)進行了一定的深入了解與研究,討論了局域網(wǎng)即時通訊系統(tǒng)的分析與設(shè)計。 本課題開發(fā)的即時通訊系統(tǒng)已經(jīng)初步完成,其登錄、注冊、聊天、好友上下線提示等基本功能已得以實現(xiàn),其服務(wù)器也能多個用戶同時連接服務(wù)器,服務(wù)器能正常運行。本課題要求基本實現(xiàn)。但是本系統(tǒng)還有很多不足之處,如在聊天的時候沒有消息過濾功能,群聊與單聊都必須被動的接收消息,不能對其不想收到的消息進行屏蔽,只有添加好
115、友功能卻沒有刪除好友功能。還有一點是,在真正的網(wǎng)絡(luò)數(shù)據(jù)傳輸中并不是已可序列化對象的方式進行數(shù)據(jù)傳輸?shù)模且裍ML方式進行數(shù)據(jù)的傳輸,這里為了課體開發(fā)的需要,就用了可序列化對象的方式進行數(shù)據(jù)傳輸。本系統(tǒng)在其它方面還有很多不足之處,這里就不一一列出。總而言之,本課題的開發(fā)還有許多需要完善的地方,還要需要學習更多的</p><p><b> 謝 辭</b></p><p&g
116、t;<b> 參考文獻</b></p><p> [1] 陳煒,張曉蕾,侯燕萍著.Java軟件開發(fā)技術(shù).北京:人們郵電出版社</p><p> [2] 朱喜福,郭逢昌著.Java網(wǎng)絡(luò)應(yīng)用編程入門.北京:人民郵電出版社</p><p> [3] 胡伏湘,雷軍環(huán)著.Java程序設(shè)計實用教程.北京:清華大學出版社 </p>&l
117、t;p> [4] 耿祥義著.Java課程設(shè)計.北京:清華大學出版社</p><p> [6] 鄭人杰著.計算機軟件測試技術(shù).北京:清華大學出版社</p><p> [7]畢廣吉.Java程序設(shè)計實例教程[M]. 北京:冶金工業(yè)出版社</p><p> [8].王保羅.Java面向?qū)ο蟪绦蛟O(shè)計[M]. 北京:清華大學出版社</p><
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 即時通訊畢業(yè)設(shè)計--企業(yè)內(nèi)部即時通訊系統(tǒng)的設(shè)計
- 即時通訊工具畢業(yè)設(shè)計
- 即時通訊系統(tǒng)---畢業(yè)論文
- 畢業(yè)設(shè)計---jqq即時通訊系統(tǒng)的設(shè)計與實現(xiàn)
- [優(yōu)秀畢業(yè)設(shè)計精品] 基于.net的即時通訊系統(tǒng)
- 即時通訊系統(tǒng)開題報告
- 文思海輝即時通訊系統(tǒng)設(shè)計
- 學術(shù)即時通訊mathq
- 安卓即時通訊
- 文思海輝即時通訊系統(tǒng)
- 即時通訊系統(tǒng)的設(shè)計與實現(xiàn)畢業(yè)論文
- 畢業(yè)論文即時通訊系統(tǒng)的設(shè)計與實現(xiàn)
- 畢業(yè)設(shè)計--基于android平臺的即時通訊系統(tǒng)的研究與設(shè)計
- 即時通訊源代碼.rar
- 即時通訊源代碼.rar
- 企業(yè)即時通訊系統(tǒng)研究.pdf
- 畢業(yè)設(shè)計---基于bs模式即時通訊軟件的設(shè)計與實現(xiàn)
- 網(wǎng)絡(luò)即時通訊系統(tǒng)的設(shè)計與實現(xiàn).pdf
- [學習]網(wǎng)絡(luò)通訊工具-即時通訊
- 即時通訊軟件的設(shè)計2論文
評論
0/150
提交評論