2023年全國(guó)碩士研究生考試考研英語(yǔ)一試題真題(含答案詳解+作文范文)_第1頁(yè)
已閱讀1頁(yè),還剩122頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、<p>  遼 寧 科 技 大 學(xué)</p><p><b>  新技術(shù)專題報(bào)告</b></p><p>  設(shè)計(jì)題目: 基于java的多功能聊天室 </p><p>  學(xué)院、系: 電子與信息工程學(xué)院 </p><p>  專業(yè)班級(jí): 計(jì)算機(jī)科學(xué)與技術(shù)09.1班 </p>&

2、lt;p>  學(xué)生姓名: 張棟 </p><p>  指導(dǎo)教師: 龍艷彬、滕薇 </p><p>  成 績(jī): </p><p>  2012 年 06 月 30 日</p><p><b>  第

3、一章 緒論3</b></p><p>  1.1 聊天室系統(tǒng)的基本概念3</p><p>  1.2 開(kāi)發(fā)聊天室系統(tǒng)的意義3</p><p>  1.3系統(tǒng)開(kāi)發(fā)環(huán)境與工具的選擇3</p><p>  1.3.1 Java語(yǔ)言3</p><p>  1.3.2 本課題開(kāi)發(fā)環(huán)境的選擇4<

4、/p><p>  1.3.3本課題開(kāi)發(fā)工具的選擇5</p><p>  1.3.4 本課題開(kāi)發(fā)技術(shù)的選擇6</p><p>  第二章 需求分析7</p><p>  2.1 聊天室系統(tǒng)作為網(wǎng)絡(luò)通訊工具的作用7</p><p>  2.2 現(xiàn)行聊天室系統(tǒng)的功能需求7</p><p>  

5、2.2.1 用戶登入7</p><p>  2.2.2 聊天記錄8</p><p>  2.2.4 用戶退出8</p><p>  2.3 質(zhì)量性能需求9</p><p>  2.3.1 容錯(cuò)性需求9</p><p>  2.3.2 穩(wěn)定性需求9</p><p>  2.3.3 軟件

6、設(shè)計(jì)可靠性9</p><p>  2.3.4 安全性9</p><p>  2.3.5 擴(kuò)展性9</p><p>  2.3.6 易用性9</p><p>  第三章 聊天室系統(tǒng)的總體設(shè)計(jì)10</p><p>  3.1 聊天室結(jié)構(gòu)分析10</p><p>  第四章 各模塊功能及

7、主要模塊的流程圖11</p><p>  4.1 各模塊功能簡(jiǎn)介11</p><p>  第五章 系統(tǒng)測(cè)試23</p><p>  5.1 測(cè)試舉例23</p><p>  5.1.1 測(cè)試程序登錄界面23</p><p>  5.1.2 測(cè)試程序主界面23</p><p>  5.

8、1.3 測(cè)試程序退出23</p><p>  5.2 測(cè)試項(xiàng)目23</p><p>  5.2.2 組合測(cè)試24</p><p>  5.3 測(cè)試方法24</p><p>  第六章 結(jié) 論29</p><p><b>  致 謝30</b></p><p>&

9、lt;b>  參考文獻(xiàn)31</b></p><p><b>  第一章 緒論</b></p><p>  1.1 聊天室系統(tǒng)的基本概念</p><p>  聊天室系統(tǒng)是一個(gè)通過(guò)國(guó)際互聯(lián)信息網(wǎng)絡(luò)進(jìn)行多人通訊的一個(gè)系統(tǒng)。該系統(tǒng)在一定網(wǎng)絡(luò)通訊及高級(jí)語(yǔ)言程序設(shè)計(jì)和JSP應(yīng)用程序設(shè)計(jì)的基礎(chǔ)上,利用計(jì)算機(jī)通訊原理,形成一個(gè)聊天室平臺(tái)

10、,使得用戶在進(jìn)入這個(gè)聊天室系統(tǒng)平臺(tái)的同時(shí),可以通過(guò)網(wǎng)絡(luò)在線與距離遙遠(yuǎn)的其他一位或多位用戶進(jìn)行信息交流。</p><p>  聊天室主要分為WebChat、BBSChat兩種。BBSChat是基于Telnet的Tcp協(xié)議,是BBS的附設(shè)功能,需要客戶端Telnet程序。WebChat則采用瀏覽器方式,實(shí)際上是一個(gè) 系統(tǒng)收集處理后分發(fā)給特定用戶。</p><p>  WebChat一般采用Se

11、rver Push或Client Pull技術(shù)。兩種技術(shù)的區(qū)別在于使用不同的方式將數(shù)據(jù)分發(fā)給用戶,Server Push是由服務(wù)器將數(shù)據(jù)以多重MIME編碼,發(fā)送給(push)使用者端,目前較少網(wǎng)站使用這種方式。Client Pull則是用戶從服務(wù)器接收(pull)所要的數(shù)據(jù)。</p><p>  1.2 開(kāi)發(fā)聊天室系統(tǒng)的意義</p><p>  在這個(gè)信息極其發(fā)達(dá)的時(shí)代,我們目前可以用來(lái)

12、進(jìn)行信息交流的方法也有非常多,比如電報(bào)、電話、電子郵件等通訊手段,但是這些或者不方便或者有局限性或者有費(fèi)用的問(wèn)題,比如電話就是屬于費(fèi)用比較高的一種方式,而且一般情況下不能進(jìn)行多人會(huì)談,只能2方通話,那么一個(gè)需要幾個(gè)人一起討論的會(huì)議就不能舉行,一般情況下都需要花費(fèi)大量的人力物力把這幾個(gè)人聚集到同一地點(diǎn)才能進(jìn)行討論。非但費(fèi)時(shí)費(fèi)力費(fèi)錢(qián)而且效果也不一定很好。電子郵件則不是一種及時(shí)聯(lián)系的手段,需要一定時(shí)間才能到達(dá),只能作為一種輔助交流的手段。但是

13、,聊天室這個(gè)就能很好的解決這個(gè)問(wèn)題,我們不需要聚集在同一地點(diǎn),各自在不同的地點(diǎn)就可以在聊天室中發(fā)言,大家互相討論。而且好的聊天室還有各種表情符號(hào)等可以加強(qiáng)我們的表達(dá)。而且費(fèi)用低廉,信息交流速度快,只有這樣,才能在這個(gè)涌動(dòng)的社會(huì)中加強(qiáng)聯(lián)系,創(chuàng)造出更多的財(cái)富。</p><p>  1.3系統(tǒng)開(kāi)發(fā)環(huán)境與工具的選擇</p><p>  1.3.1 Java語(yǔ)言</p><p&

14、gt;  Java是由Sun Microsystems公司于1995年5月推出的Java程序設(shè)計(jì)語(yǔ)言和Java平臺(tái)的總稱。用Java實(shí)現(xiàn)的Hot Java瀏覽器(支持Java applet)顯示了Java跨平臺(tái)、動(dòng)態(tài)的Web、Internet計(jì)算等一系列的魅力。從此Java被廣泛接受并推動(dòng)了Web的迅速發(fā)展。</p><p>  Java語(yǔ)言的語(yǔ)法與C語(yǔ)言和C++語(yǔ)言很接近,使得大多數(shù)程序員很容易學(xué)習(xí)和使用。另一

15、方面,Java丟棄了C++很少使用的、很難理解的、令人迷惑的那些特性,如操作符重載、多繼承、自動(dòng)強(qiáng)制類型轉(zhuǎn)換。而且,Java語(yǔ)言不使用指針,并提供了自動(dòng)的廢料收集,使得程序員不必為內(nèi)存管理而擔(dān)憂。Java語(yǔ)言是一個(gè)面向?qū)ο蟮?、提供類和接口以及繼承的原語(yǔ),為了簡(jiǎn)單起見(jiàn),只支持類之間的單繼承,但支持接口之間的多繼承,并支持類與接口之間的實(shí)現(xiàn)機(jī)制。Java語(yǔ)言支持Internet應(yīng)用的開(kāi)發(fā),在基本的Java應(yīng)用編程接口中有一個(gè)網(wǎng)絡(luò)應(yīng)用編程接口

16、,它提供了用于網(wǎng)絡(luò)應(yīng)用編程的類庫(kù),包括URL、URLConnection、Socket(實(shí)現(xiàn)客戶端的套接字)、ServerSocket(實(shí)現(xiàn)服務(wù)器端的套接字)等。Java的強(qiáng)制型機(jī)制、異常處理、廢料的自動(dòng)收集等都是Java程序健壯性的重要保證。Java通常被用在網(wǎng)絡(luò)環(huán)境中,為此,Java提供了一個(gè)安全機(jī)制以防惡意代碼的攻擊。</p><p>  Java語(yǔ)言的優(yōu)良特性使得Java應(yīng)用具有無(wú)比的健壯性和可靠性,這也

17、減少了應(yīng)用系統(tǒng)的維護(hù)費(fèi)用。Java對(duì)對(duì)象技術(shù)的全面支持和Java平臺(tái)內(nèi)嵌的API能縮短應(yīng)用系統(tǒng)的開(kāi)發(fā)時(shí)間并降低成本。Java編譯一次,處處可運(yùn)行的特性使得它能夠提供一個(gè)隨處可用的開(kāi)放結(jié)構(gòu)和在多平臺(tái)之間傳遞信息的低成本方式。豐富的類庫(kù)為Java提供了大量的類以滿足網(wǎng)絡(luò)化、多線程、面向?qū)ο笙到y(tǒng)的需要。同時(shí)Java程序可以獲取網(wǎng)絡(luò)上節(jié)點(diǎn)的圖像、聲音、HTML文檔及文本資源。</p><p>  1.3.2 本課題開(kāi)發(fā)環(huán)

18、境的選擇</p><p>  在進(jìn)行開(kāi)發(fā)之前,首先決定的第一個(gè)問(wèn)題就是,該使用什么開(kāi)發(fā)環(huán)境來(lái)編寫(xiě)該系統(tǒng)?以目前常用的開(kāi)發(fā)語(yǔ)言來(lái)講有C/C++、.NET技術(shù),JAVA、 Visual Basic幾種。還有Eclipse,、Borland JBuilder等,這些并不是程序語(yǔ)言,而是程序語(yǔ)言在建構(gòu)程序時(shí)的“集成開(kāi)發(fā)工具”,不過(guò)它們?cè)陂_(kāi)發(fā)設(shè)計(jì)的過(guò)程中也占有相當(dāng)重要的角色,因?yàn)檫x用正確的集成開(kāi)發(fā)工具,可以加速程序設(shè)計(jì)的進(jìn)

19、行、測(cè)試與排錯(cuò),因而對(duì)整體進(jìn)度具有決定性的影響。</p><p>  基于以下幾點(diǎn),選擇JAVA語(yǔ)言開(kāi)發(fā)技術(shù)。</p><p>  就執(zhí)行平臺(tái)而言,必須考慮的問(wèn)題之一是用戶可能使用的操作系統(tǒng)。用戶可能使用的是Windows Linux。JAVA語(yǔ)言具有平臺(tái)無(wú)關(guān)性,可以不需要任何修改就可以運(yùn)行在支持JAVA的任何計(jì)算機(jī)上。</p><p>  JAVA的Swing

20、組件開(kāi)發(fā)技術(shù)可以開(kāi)發(fā)豐富的圖形界面,并且Swing API類提供了豐富的外部接口和方法,可以方便實(shí)現(xiàn)系統(tǒng)功能。</p><p>  就項(xiàng)目開(kāi)發(fā)而言,純粹的面向?qū)ο?,加上?shù)量巨大的類所提供的方法(函數(shù))庫(kù)的支持,使得利用Java開(kāi)發(fā)各種應(yīng)用程序,可以說(shuō)是易如反掌。此外,在程序除錯(cuò)、修改、升級(jí)和增加新功能等方面,因其面向?qū)ο蟮奶匦?,使得這些維護(hù)也變得非常容易。</p><p>  Java支持

21、內(nèi)在的多線程運(yùn)行,提供分布式的并發(fā)機(jī)制,運(yùn)行效率高。</p><p>  異常處理,為了使Java程式更穩(wěn)定、更安全,Java引入了異常處理機(jī)制。能夠在程序中產(chǎn)生異常情況的地方,執(zhí)行相對(duì)應(yīng)的處理,不至于因突發(fā)或意外的錯(cuò)誤造成執(zhí)行中斷或是死機(jī)。通過(guò)這種異常處理,不僅能夠清晰地掌握整個(gè)程序執(zhí)行的流程,也使得程序的設(shè)計(jì)更為嚴(yán)謹(jǐn)。</p><p>  高性能,Java可以在運(yùn)行時(shí)直接將目標(biāo)代碼翻譯

22、成機(jī)器指令。Sun用直接解釋器一秒鐘內(nèi)可調(diào)用300,000個(gè)過(guò)程。翻譯目標(biāo)代碼的速度與C/C++的性能沒(méi)什么區(qū)別。</p><p>  網(wǎng)絡(luò)功能,Java可以說(shuō)是借助因特網(wǎng)而重獲新生的,自然具備編寫(xiě)網(wǎng)絡(luò)功能的程序。不論是一般因特網(wǎng)/局域網(wǎng)的程序,如Socket、Email、基于Web服務(wù)器的Servlet、JSP程序,甚至連分布式網(wǎng)絡(luò)程序,如CORBA、RMI等的支持也是非常豐富的,使用起來(lái)也很方便。</p

23、><p>  源回收處理,Garbage Collection是由JVM對(duì)內(nèi)存實(shí)行動(dòng)態(tài)管理的。程序需要多少內(nèi)存、哪些程序的內(nèi)存已經(jīng)不使用了,需要釋放歸還給系統(tǒng),這些煩瑣危險(xiǎn)的操作全部交由JVM去管理。讓我們能夠更專心地編寫(xiě)程序,而不需要擔(dān)心內(nèi)存的問(wèn)題。內(nèi)存的統(tǒng)一管理,對(duì)于跨平臺(tái)也有相當(dāng)大的幫助。</p><p>  1.3.3本課題開(kāi)發(fā)工具的選擇</p><p&g

24、t;  Java的開(kāi)發(fā)工具很多,而且各有優(yōu)缺點(diǎn),Eclipse是一個(gè)開(kāi)放可擴(kuò)展的集成開(kāi)發(fā)環(huán)境(IDE)。它不僅可以用于Java的開(kāi)發(fā),通過(guò)開(kāi)發(fā)插件,它可以構(gòu)建其他的開(kāi)發(fā)工具。Eclipse是開(kāi)放源代碼的項(xiàng)目,并可以免費(fèi)下載。支持最新的Java標(biāo)準(zhǔn),并且縮短了開(kāi)發(fā)周期。一直以其友好的集成開(kāi)發(fā)環(huán)境在業(yè)界受到廣泛的贊譽(yù),這也是Eclipse一直是廣大程序員最喜愛(ài)的Java開(kāi)發(fā)工具的原因之一。</p><p>  Ecl

25、ipse的可視化集成開(kāi)發(fā)環(huán)境包括文本編輯器、工程創(chuàng)建工具、對(duì)象瀏覽器和調(diào)試器等。用戶可以在集成開(kāi)發(fā)環(huán)境中創(chuàng)建工程和打開(kāi)工程,建立、打開(kāi)和編輯文件,并可以編譯、運(yùn)行和調(diào)試應(yīng)用程序??梢哉f(shuō)在Eclipse集成開(kāi)發(fā)環(huán)境中開(kāi)發(fā)Java程序,快速而且高效。其主要特點(diǎn)如下:</p><p>  開(kāi)放的可擴(kuò)展的IDE</p><p>  成功的底層圖形界面API</p><p>

26、<b>  強(qiáng)大的插件加載功能</b></p><p>  可以通過(guò)導(dǎo)入一些CVS相關(guān)的插件來(lái)實(shí)現(xiàn)版本管理的便易性</p><p>  1.3.4 本課題開(kāi)發(fā)技術(shù)的選擇</p><p>  本課題選擇了java Socket技術(shù)開(kāi)發(fā)網(wǎng)絡(luò)聊天室。什么是socket? socket是一種用于表達(dá)兩臺(tái)機(jī)器之間連接“終端”的軟件抽象。對(duì)于一個(gè)給定的連接

27、,在每臺(tái)機(jī)器上都有一個(gè)socket,你可以想象一個(gè)虛擬的"電纜"工作在兩臺(tái)機(jī)器之間,“電纜”插在兩臺(tái)機(jī)器的socket上。當(dāng)然,物理硬件和兩臺(tái)機(jī)器之間的“電纜”這些連接裝置都是未知的,抽象的所有目的就是為了讓我們不必了解更多的細(xì)節(jié)。簡(jiǎn)單的說(shuō),一臺(tái)計(jì)算機(jī)上的socket同另一臺(tái)計(jì)算機(jī)通話創(chuàng)建一個(gè)通信信道,程序員可以用這個(gè)信道在兩臺(tái)機(jī)器之間發(fā)送數(shù)據(jù)。當(dāng)你發(fā)送數(shù)據(jù)TCP/IP協(xié)議棧的每一層都給你的數(shù)據(jù)里添加適當(dāng)?shù)膱?bào)頭。有個(gè)

28、好消息是java語(yǔ)言隱藏了所有這些細(xì)節(jié),這也是為什么他們有時(shí)被叫做“流socket”。思考一下socket像電話聽(tīng)筒一樣在電話的任意一端--你和我通過(guò)一個(gè)專門(mén)的信道來(lái)進(jìn)行通話和接聽(tīng)。會(huì)話將一直進(jìn)行下去直到我們決定掛斷電話(除非我們使用蜂窩電話),除非我們掛斷電話,否則我們各自的電話線路都會(huì)占線。如果你需要在兩臺(tái)機(jī)器之間進(jìn)行通訊而不使用高級(jí)機(jī)制像ORBs(以及CORBA, RMI, IIOP等等),socket較適合你。S</p&g

29、t;<p>  1.4 本次新技術(shù)專題設(shè)計(jì)所要完成的主要工作</p><p>  通過(guò)所學(xué)知識(shí),根據(jù)網(wǎng)絡(luò)聊天室系統(tǒng)的發(fā)展動(dòng)態(tài),結(jié)合自己個(gè)人的興趣愛(ài)好,建立一個(gè)功能豐富,操作簡(jiǎn)便快捷的通用網(wǎng)絡(luò)聊天室系統(tǒng)。</p><p>  本文的主要安排了對(duì)聊天室技術(shù)的一些相關(guān)介紹,比如java Socket技術(shù)。接著是關(guān)于對(duì)聊天室系統(tǒng)的分析和設(shè)計(jì),通過(guò)對(duì)聊天室的結(jié)構(gòu)的分析來(lái)設(shè)計(jì)聊天室系統(tǒng)

30、,并根據(jù)自己的興趣和想法來(lái)豐富聊天室的功能。</p><p><b>  第二章 需求分析</b></p><p>  2.1 聊天室系統(tǒng)作為網(wǎng)絡(luò)通訊工具的作用</p><p>  聊天室是提供給網(wǎng)民一個(gè)交友與娛樂(lè)的場(chǎng)所,在聊天室里網(wǎng)民可選擇自己的聊天對(duì)象,與其進(jìn)行對(duì)話交流,是網(wǎng)民之間相互溝通、交流情感的最佳方式之一。用戶可以通過(guò)網(wǎng)絡(luò)在線與距

31、離遙遠(yuǎn)的其他一位或多位用戶進(jìn)行信息交流。在聊天室里網(wǎng)民可選擇自己的聊天對(duì)象,進(jìn)行對(duì)話交流。既可以一對(duì)一,又可以一對(duì)多,還可以形成小組進(jìn)行多對(duì)多討論,方便網(wǎng)民在線私聊與群聊。是現(xiàn)行網(wǎng)絡(luò)最流行、最被廣泛應(yīng)用的通訊工具。</p><p>  2.2 現(xiàn)行聊天室系統(tǒng)的功能需求</p><p>  聊天室系統(tǒng)雖然滿足了人們的在線通訊,但是隨著聊天室被廣泛應(yīng)用,人們對(duì)于聊天的要求也越來(lái)越高,單純的聊天

32、已不能滿足人們的需要,人們更需要多功能的聊天室系統(tǒng),來(lái)豐富聊天環(huán)境。</p><p>  聊天室系統(tǒng)功能具體需求包括:</p><p>  一個(gè)聊天室里所有的人都可以互相密談。</p><p>  可以通過(guò)用鼠標(biāo)點(diǎn)擊頁(yè)面上出現(xiàn)的或者人名列表的人名來(lái)選擇人名。</p><p>  可以察看進(jìn)入房間以后的所有聊天紀(jì)錄。</p>&l

33、t;p>  可以根據(jù)您的自己喜好來(lái)設(shè)置背景顏色和畫(huà)面,使您更加舒適的聊天。</p><p>  2.2.1 用戶登入</p><p>  需求描述:用戶填寫(xiě)登入ID 和密碼,經(jīng)服務(wù)器驗(yàn)證成功后進(jìn)入聊天室主界面。</p><p><b>  執(zhí)行者:用戶</b></p><p>  前置條件:用戶成功注冊(cè)或已經(jīng)擁有一

34、個(gè)合法的ID號(hào)</p><p><b>  后置條件:無(wú)</b></p><p><b>  正常過(guò)程:</b></p><p><b>  先啟動(dòng)服務(wù)器端</b></p><p>  客戶端向服務(wù)端請(qǐng)求連接,并發(fā)送登錄信息。</p><p>  當(dāng)客戶

35、端輸入的名字不為空的時(shí)候,返回客戶端一個(gè)響應(yīng),提示登錄成功,彈出聊天室主界面。</p><p>  2.2.2 聊天記錄</p><p>  需求描述:用戶可以查詢聊天的歷史紀(jì)錄,包括公聊記錄和私聊記錄。</p><p><b>  執(zhí)行者:用戶</b></p><p>  前置條件:用戶正確登入后</p>

36、<p><b>  后置條件:無(wú)</b></p><p><b>  正常過(guò)程:</b></p><p>  發(fā)送、接收信息的同時(shí)將信息保存在本地文件中</p><p>  信息發(fā)送框中可以查詢歷史聊天記錄</p><p>  從本地文件中讀取信息,并顯示在記錄顯示匡中</p>

37、;<p><b>  異常過(guò)程(可選):</b></p><p>  服務(wù)端異常導(dǎo)致客戶端退出,客戶端提示服務(wù)器異常。</p><p>  客戶端讀取信息時(shí)目標(biāo)文件不存在。</p><p>  2.2.3顯示當(dāng)前登錄過(guò)聊天室的訪客姓名</p><p>  需求描述:在局域網(wǎng)中的用戶可以清晰的看到當(dāng)前在聊天室

38、的聊友</p><p>  執(zhí)行者:有服務(wù)器執(zhí)行</p><p>  前置條件:用戶正確登陸后</p><p><b>  后置條件:無(wú)</b></p><p><b>  正常過(guò)程:</b></p><p>  當(dāng)用戶正確登錄聊天室以后,系統(tǒng)會(huì)自動(dòng)顯示當(dāng)前在聊天室中的人的姓

39、名</p><p>  2.2.4 用戶退出</p><p>  需求描述:用戶在正常情況下退出聊天室</p><p><b>  執(zhí)行者:用戶</b></p><p>  前置條件:用戶成功登錄聊天室</p><p><b>  后置條件:無(wú)</b></p>

40、<p><b>  正常過(guò)程:</b></p><p>  向服務(wù)器發(fā)送用戶登出消息</p><p>  服務(wù)器進(jìn)行用戶退出的數(shù)據(jù)處理</p><p>  服務(wù)器向聊天室其他用戶發(fā)送登出消息</p><p>  刷新其他在線用戶的用戶列表信息</p><p>  2.3 質(zhì)量性能需求&l

41、t;/p><p>  2.3.1 容錯(cuò)性需求</p><p>  當(dāng)出現(xiàn)代碼異常時(shí),出現(xiàn)正確的提示,不會(huì)影響整個(gè)系統(tǒng)的運(yùn)行。用戶之間信息傳輸不會(huì)因?yàn)閿?shù)據(jù)封裝問(wèn)題出現(xiàn)丟失或亂碼。因用戶的誤操作產(chǎn)生的異常應(yīng)做出及時(shí)的處理或信息提示。</p><p>  2.3.2 穩(wěn)定性需求</p><p>  軟件應(yīng)正常完成所有功能需求。服務(wù)器端應(yīng)長(zhǎng)時(shí)間運(yùn)行無(wú)故障

42、,故障修復(fù)時(shí)間一般控制在3小時(shí)內(nèi),除非出現(xiàn)惡性攻擊、病毒破壞、系統(tǒng)資源不足、硬件故障、操作系統(tǒng)或數(shù)據(jù)庫(kù)系統(tǒng)崩潰網(wǎng)絡(luò)中斷等情況,要求系統(tǒng)連續(xù)運(yùn)行一周,不允許出現(xiàn)內(nèi)存泄露。</p><p>  要求系統(tǒng)可以承受告警風(fēng)暴和大數(shù)據(jù)量的沖擊,不出現(xiàn)內(nèi)存溢出等現(xiàn)象。</p><p>  2.3.3 軟件設(shè)計(jì)可靠性</p><p>  要確定合適的模塊粒度,各模塊之間要求松耦合,

43、高內(nèi)聚;從而使整個(gè)系統(tǒng)的可靠性和穩(wěn)定性得到提高,并且便于系統(tǒng)維護(hù),和新模塊的添加。</p><p><b>  2.3.4 安全性</b></p><p>  安全性是防止網(wǎng)絡(luò)方面的攻擊。</p><p><b>  2.3.5 擴(kuò)展性</b></p><p>  系統(tǒng)建成后,應(yīng)在現(xiàn)行系統(tǒng)上不需要做

44、大的改動(dòng)或不影響整個(gè)系統(tǒng)結(jié)構(gòu),就可以增加功能模塊,這就必須在系統(tǒng)設(shè)計(jì)時(shí)留有接口,使其具有可擴(kuò)展性和維護(hù)性。</p><p><b>  2.3.6 易用性</b></p><p>  系統(tǒng)操作的界面必須簡(jiǎn)潔、操作方便易用、設(shè)計(jì)合理。</p><p>  第三章 聊天室系統(tǒng)的總體設(shè)計(jì)</p><p>  3.1 聊天室結(jié)

45、構(gòu)分析</p><p>  本聊天室采用的是當(dāng)前流行的Browser/Server(瀏覽器/服務(wù)器)結(jié)構(gòu),B/S結(jié)構(gòu)是隨著Internet技術(shù)的興起,對(duì)C/S結(jié)構(gòu)的一種變化或者改進(jìn)的結(jié)構(gòu)。在這種結(jié)構(gòu)下,用戶界面完全通過(guò)WWW瀏覽器實(shí)現(xiàn),一部分事務(wù)邏輯在前端實(shí)現(xiàn),但是主要事務(wù)邏輯在服務(wù)器端實(shí)現(xiàn),形成所謂3-tier結(jié)構(gòu)。B/S結(jié)構(gòu)利用不斷成熟和普及的瀏覽器技術(shù)實(shí)現(xiàn)原來(lái)需要復(fù)雜專用軟件才能實(shí)現(xiàn)的強(qiáng)大功能,并節(jié)約了開(kāi)發(fā)

46、成本,是一種全新的軟件系統(tǒng)構(gòu)造技術(shù)。</p><p>  本聊天室主要由注冊(cè)界面、登錄界面、聊天室界面、私聊界面、查看聊天內(nèi)容界面、功能設(shè)置界面等構(gòu)成。整個(gè)設(shè)計(jì)簡(jiǎn)潔明了、實(shí)用,使用簡(jiǎn)單。</p><p><b>  圖1 客戶端結(jié)構(gòu)</b></p><p>  圖2 服務(wù)器結(jié)構(gòu)圖</p><p>  第四章 各模塊功

47、能及主要模塊的流程圖</p><p>  4.1 各模塊功能簡(jiǎn)介</p><p>  4.1.1 服務(wù)器</p><p>  服務(wù)器共有四大模塊,分別為:</p><p>  窗體、客戶連接、啟動(dòng)與關(guān)閉、線程(客戶信息處理)</p><p> ?、俅绑w:可視化,能了解服務(wù)器運(yùn)行狀況,知道客戶連接數(shù)。</p>

48、;<p>  ②客戶連接:為客戶建立連接線程。</p><p>  ③啟動(dòng)與關(guān)閉:控制服務(wù)器啟動(dòng)與關(guān)閉。</p><p> ?、芫€程(客戶信息處理):接收客戶發(fā)來(lái)的信息,并判斷,做相應(yīng)的處理。</p><p><b>  服務(wù)器代碼:</b></p><p>  package chatroom01;<

49、;/p><p>  import java.net.*;</p><p>  import java.awt.*;</p><p>  import java.util.Date;</p><p>  import javax.swing.*;</p><p>  import java.awt.event.*;</

50、p><p>  import java.io.*;</p><p>  import java.util.ArrayList;</p><p>  public class Server extends Thread implements ActionListener{</p><p>  TextArea xinxikou;</p>

51、<p>  Button qidong,guanbi;</p><p>  JLabel duankou;</p><p>  JTextArea dkhao;</p><p>  ServerSocket ss; </p><p>  thread th;</p><p>  String time;&

52、lt;/p><p>  public Server()</p><p><b>  {</b></p><p>  JFrame kou=new JFrame("聊天服務(wù)器系統(tǒng)");</p><p>  kou.setBounds(200,200,300,300);</p><p>

53、;  kou.setLayout(null);</p><p>  qidong=new Button("啟動(dòng)服務(wù)器");</p><p>  guanbi=new Button("停止服務(wù)器");</p><p>  duankou=new JLabel("端口號(hào):");</p><p

54、>  dkhao=new JTextArea("8888",1,4);</p><p>  xinxikou=new TextArea();</p><p>  qidong.setBackground(Color.GREEN);</p><p>  guanbi.setBackground(Color.RED);</p>&

55、lt;p>  duankou.setForeground(Color.red);</p><p>  dkhao.setForeground(Color.red);</p><p>  xinxikou.setForeground(Color.red);</p><p>  qidong.setBounds(10,10,70,25);</p>&

56、lt;p>  guanbi.setBounds(90,10,70,25);</p><p>  duankou.setBounds(170,10,70,25);</p><p>  dkhao.setBounds(220,15,60,20);</p><p>  xinxikou.setBounds(10,40,270,220);</p><

57、;p>  kou.add(qidong);</p><p>  kou.add(guanbi);</p><p>  kou.add(duankou);</p><p>  kou.add(dkhao);</p><p>  kou.add(xinxikou);</p><p>  qidong.addActio

58、nListener(this);</p><p>  guanbi.addActionListener(this);</p><p>  kou.setResizable(false);</p><p>  kou.setVisible(true);</p><p><b>  }</b></p>&l

59、t;p>  public void run()</p><p><b>  {</b></p><p>  while(true)</p><p><b>  {</b></p><p><b>  try{</b></p><p>  Socke

60、t so = ss.accept();//客戶連接</p><p>  th=new thread(so);</p><p>  th.start();</p><p>  Date d=new Date();</p><p>  time=d.toLocaleString();</p><p>  xinxi

61、kou.append("\n"+time+"\n 有客戶連接服務(wù)器!");</p><p>  }catch(IOException e){}</p><p><b>  }</b></p><p><b>  }</b></p><p>  publi

62、c void actionPerformed(ActionEvent e) </p><p><b>  {</b></p><p>  if(e.getSource()==qidong)</p><p><b>  {</b></p><p><b>  try {&l

63、t;/b></p><p>  ss=new ServerSocket(Integer.parseInt(dkhao.getText()));</p><p>  }catch (IOException e1) {}</p><p>  xinxikou.setText(" 等待客戶端連接.......");</p>

64、<p>  this.start();</p><p><b>  }</b></p><p>  else if(e.getSource()==guanbi)</p><p>  System.exit(0);</p><p><b>  }</b></p><p&g

65、t;  public static void main(String args[])throws Exception</p><p><b>  {</b></p><p>  new Server();</p><p><b>  }</b></p><p><b>  }</

66、b></p><p>  //-------------------------------------------------------------------------</p><p>  class thread extends Thread</p><p><b>  {</b></p><p>  p

67、rivate static ArrayList yonghu=new ArrayList();</p><p>  private static Socket so;</p><p>  private static String name,xx,xinxi="",allname="來(lái)過(guò)聊天室的有:";</p><p>  

68、public thread(Socket so)</p><p>  {this.so = so;</p><p>  yonghu.add(so);</p><p><b>  }</b></p><p>  public void run()</p><p><b>  {</

69、b></p><p><b>  try{</b></p><p>  InputStream is=so.getInputStream();</p><p>  OutputStream os=so.getOutputStream();</p><p>  BufferedReader br=new Buffer

70、edReader(new InputStreamReader(is));</p><p>  PrintStream ps= new PrintStream(os);</p><p>  name=br.readLine();</p><p>  allname+=name+" ";</p><p>  xinxi=&q

71、uot;歡迎 "+name+" 來(lái)到聊天室!";</p><p>  ps.println(allname+"\n"+xinxi);</p><p>  ps.flush();</p><p>  while(true)</p><p><b>  {</b><

72、;/p><p>  xx=br.readLine(); </p><p>  if(0==1)break;</p><p>  if("離開(kāi)了聊天室!".equals(xx))</p><p>  xinxi=name+" "+xx;</p><p>  else if(

73、"yaoxinxi".equals(xx))</p><p><b>  {</b></p><p>  ps.println(xinxi);</p><p>  ps.flush();</p><p><b>  }</b></p><p>  else

74、 xinxi=xx;</p><p>  } </p><p>  ps.close();</p><p>  br.close();</p><p>  so.close();</p><p>  }catch(Exception e){}</p><p><b

75、>  }</b></p><p><b>  }</b></p><p><b>  3.2 主要流程圖</b></p><p>  服務(wù)器 </p><p>  4.1.2客戶機(jī)共有三大模塊,分別為:</p><p>  登錄、聊天窗口、線

76、程)</p><p>  ①登錄:為客戶輸入用戶名,及服務(wù)器的IP地址。</p><p>  ②聊天窗口:可視化窗體,方便客戶使用系統(tǒng)。</p><p>  ③線程:處理客戶要發(fā)送的信息,接收服務(wù)器發(fā)來(lái)的信息! </p><p><b>  客戶機(jī)</b></p><p><b

77、>  客戶機(jī)代碼:</b></p><p>  package chatroom01;</p><p>  import java.awt.event.*;</p><p>  import java.io.*;</p><p>  import java.net.*;</p><p>  impor

78、t java.util.Date;</p><p>  import java.awt.FlowLayout;</p><p>  import javax.swing.*;</p><p>  import java.awt.*;</p><p>  public class Client extends JFrame implements

79、 ActionListener</p><p><b>  {</b></p><p>  Button denglu;</p><p>  JLabel yonghu,y,bip,duankou;</p><p>  JTextArea yong,ip,dkhao; </p><p>  pub

80、lic Client ()</p><p><b>  {</b></p><p>  super("用戶登錄口"); </p><p>  setBounds(400,300,400,200);</p><p>  JPanel kuang=new JPanel();</p>&

81、lt;p>  yonghu=new JLabel("用戶名:");</p><p>  yonghu.setForeground(Color.red);</p><p>  bip=new JLabel("服務(wù)器IP:");</p><p>  bip.setForeground(Color.green);</p&

82、gt;<p>  duankou=new JLabel("端口號(hào):");</p><p>  duankou.setForeground(Color.yellow);</p><p>  dkhao=new JTextArea("8888",1,12);</p><p>  dkhao.setForeground

83、(Color.black);</p><p>  y=new JLabel("*******歡迎你登錄本系統(tǒng)聊天!*********");</p><p>  y.setForeground(Color.yellow);</p><p>  yong=new JTextArea("",1,12);</p><

84、;p>  yong.setForeground(Color.red);</p><p>  ip=new JTextArea("127.0.0.1",1,12);</p><p>  ip.setForeground(Color.red);</p><p>  denglu=new Button("←登錄→");<

85、/p><p>  denglu.setBackground(Color.yellow);</p><p>  denglu.setForeground(Color.red);</p><p>  kuang.setBackground(Color.pink);</p><p>  getContentPane().add(kuang);</

86、p><p>  kuang.add(yonghu);</p><p>  kuang.add(yong);</p><p>  kuang.add(bip);</p><p>  kuang.add(ip);</p><p>  kuang.add(duankou);</p><p>  kuang

87、.add(dkhao);</p><p>  kuang.add(y);</p><p>  kuang.add(denglu);</p><p>  setVisible(true);</p><p>  denglu.addActionListener(this);</p><p><b>  } <

88、;/b></p><p>  public void actionPerformed(ActionEvent e) </p><p><b>  {</b></p><p>  if(e.getSource()==denglu)</p><p><b>  {</b></p>&

89、lt;p>  if(!yong.getText().equals(""))</p><p><b>  {</b></p><p>  this.setVisible(false);</p><p>  new th(yong.getText(),ip.getText(),Integer.parseInt(dkhao.

90、getText()));</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  } </b></p><p>  public static void main(String[] args) </p><

91、;p><b>  {</b></p><p>  new Client();</p><p><b>  }</b></p><p><b>  } </b></p><p>  //--------------------------------------

92、----------------------------</p><p>  class th extends JFrame implements ActionListener,Runnable</p><p>  {JLabel tishi;</p><p>  TextArea xinxilan;</p><p>  JTextField

93、 fasongkou;</p><p>  JButton fasong;</p><p>  Socket so ;</p><p>  InputStream is ;</p><p>  OutputStream os ;</p><p>  BufferedReader br ;</p><

94、p>  PrintStream ps;</p><p><b>  Thread t;</b></p><p>  private static String name,time,cz="";</p><p>  public th( String name,String ip,int dkhao)</p>

95、<p><b>  {</b></p><p>  JFrame kou=new JFrame("客戶:"+name);</p><p>  kou.setBounds(500,200,400,440);</p><p>  kou.setLayout(null);</p><p>  

96、tishi=new JLabel(" 聊天信息欄 ");</p><p>  xinxilan=new TextArea(15,25);</p><p>  fasongkou=new JTextField(20);</p><p>  fasong= new JButton("發(fā)送");</p>

97、<p>  tishi.setForeground(Color.pink);</p><p>  xinxilan.setForeground(Color.GREEN);</p><p>  fasongkou.setForeground(Color.red);</p><p>  fasong.setBackground(Color.pink);&l

98、t;/p><p>  fasong.setForeground(Color.red);</p><p>  fasong.addActionListener(this);</p><p>  tishi.setBounds(10,5,100,12);</p><p>  xinxilan.setBounds(10,30,360,300);<

99、/p><p>  fasongkou.setBounds(10,350,300,25);</p><p>  fasong.setBounds(315,350,60,25);</p><p>  kou.add(tishi);</p><p>  kou.add(xinxilan);</p><p>  kou.add(f

100、asongkou);</p><p>  kou.add(fasong);</p><p>  this.name=name;</p><p><b>  try{</b></p><p>  so=new Socket(ip,dkhao);</p><p>  is=so.getInputStr

101、eam();</p><p>  os=so.getOutputStream();</p><p>  ps=new PrintStream(os);</p><p>  ps.println(name);</p><p>  ps.flush();</p><p>  }catch(Exception e)</

102、p><p><b>  {}</b></p><p>  t=new Thread(this);</p><p>  t.start();</p><p>  kou.setVisible(true);</p><p>  kou.addWindowListener(new WindowAdapte

103、r(){</p><p>  public void windowClosing(WindowEvent e){sendi();}});</p><p><b>  }</b></p><p>  public void actionPerformed(ActionEvent arg0)</p><p>  { send

104、(); }</p><p>  public void sendi()</p><p><b>  {</b></p><p>  ps=new PrintStream(os);</p><p>  ps.println(name+" 離開(kāi)了聊天室!");</p><p>  

105、ps.flush();</p><p><b>  }</b></p><p>  public void send()</p><p><b>  {</b></p><p><b>  try{</b></p><p>  if(!fasongko

106、u.getText().equals(""))</p><p><b>  {</b></p><p>  ps=new PrintStream(os);</p><p>  ps.println(name+" 說(shuō): "+fasongkou.getText());</p><p>

107、  ps.flush();</p><p>  fasongkou.setText("");</p><p><b>  }</b></p><p>  }catch(Exception e)</p><p><b>  {</b></p><p&g

108、t;  e.printStackTrace();</p><p><b>  }</b></p><p><b>  }</b></p><p>  public void run()</p><p><b>  {</b></p><p>  whi

109、le(true)</p><p><b>  {</b></p><p>  try{String xinxi=""; </p><p>  ps=new PrintStream(os);</p><p>  ps.println("yaoxinxi"

110、;);</p><p>  br=new BufferedReader(new InputStreamReader(is));</p><p>  xinxi=br.readLine();</p><p>  if(!cz.equals(xinxi))</p><p>  {Date d=new Date();</p><

111、p>  time=d.toLocaleString();</p><p>  xinxilan.append(time+"\n "+xinxi+"\n");</p><p><b>  cz=xinxi;</b></p><p><b>  }</b></p>

112、<p>  Thread.sleep(300); </p><p>  }catch(Exception e)</p><p><b>  {</b></p><p>  xinxilan.append("服務(wù)器端異?;蛞呀?jīng)關(guān)閉,本窗口即將關(guān)閉!");</p><p>&l

113、t;b>  try{</b></p><p>  Thread.sleep(2000);</p><p>  System.exit(0);</p><p>  }catch(Exception e1)</p><p><b>  {}</b></p><p><b>

114、  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  第五章 系統(tǒng)測(cè)試</b></p><p>  為了確

115、保本系統(tǒng)能夠正常運(yùn)行,需要在發(fā)布之后做一次較全面的測(cè)試?,F(xiàn)將具體操作及過(guò)程舉例說(shuō)明如下:</p><p><b>  5.1 測(cè)試舉例</b></p><p>  5.1.1 測(cè)試程序登錄界面</p><p>  打開(kāi)程序后,首先出現(xiàn)的是登錄頁(yè)面,在設(shè)置好網(wǎng)絡(luò)IP和端口號(hào)之后,輸入用戶名和密碼,如果連接服務(wù)器成功則提示用戶輸入的用戶名和密碼是否

116、正確,否則提示連接不到服務(wù)器,并提示正確設(shè)置服務(wù)器IP和服務(wù)端口。其中端口號(hào)只能設(shè)置1024之后的端口號(hào),前面的地址為服務(wù)器作為保留地址用,否則程序會(huì)提示錯(cuò)誤。</p><p>  5.1.2 測(cè)試程序主界面</p><p>  進(jìn)入主界面后,主頁(yè)面會(huì)顯示在線用戶列表區(qū)、信息顯示區(qū)、功能設(shè)置區(qū)、信息發(fā)送區(qū)、功能按鈕區(qū)。用戶可以在用戶列表中看到目前在線的其他用戶,并在信息顯示區(qū)內(nèi)看到系統(tǒng)提示

117、。用戶可以在信息發(fā)送區(qū)內(nèi)輸入自己的發(fā)送內(nèi)容,并可以通過(guò)功能設(shè)置區(qū)設(shè)置字體內(nèi)容的屬性和發(fā)送表情??梢酝ㄟ^(guò)單擊用戶列表名中的用戶彈出私聊窗體,進(jìn)行私聊,發(fā)送的信息其他用戶不可以見(jiàn)。在主界面的顯示區(qū)中可以不斷的查看到其他用戶發(fā)送過(guò)來(lái)的信息,并可以通過(guò)點(diǎn)擊查看記錄按鈕查看保存的聊天記錄。</p><p>  5.1.3 測(cè)試程序退出</p><p>  當(dāng)單擊退出按鈕或窗體的關(guān)閉時(shí),用戶將發(fā)送退出

118、信息,離開(kāi)聊天室,其他用戶可以得到系統(tǒng)提示用戶下線并刷新用戶列表。當(dāng)服務(wù)器出線異?;蜿P(guān)閉時(shí),客戶端將提示服務(wù)中斷并退出系統(tǒng)。</p><p><b>  5.2 測(cè)試項(xiàng)目</b></p><p>  由于實(shí)際開(kāi)發(fā)過(guò)程中還是不可避免地會(huì)產(chǎn)生差錯(cuò),系統(tǒng)中通??赡茈[藏著錯(cuò)誤和缺陷,不經(jīng)周密測(cè)試的系統(tǒng)投入運(yùn)行,將會(huì)造成難以想象的后果,因此系統(tǒng)測(cè)試是軟件開(kāi)發(fā)過(guò)程中為保證軟件質(zhì)量

119、必須進(jìn)行的工作。大量統(tǒng)計(jì)資料表明,系統(tǒng)測(cè)試的工作量往往占軟件開(kāi)發(fā)總工作量的30%以上。因此,我們必須重視測(cè)試工作。</p><p>  由于程序中隱藏的缺陷只在特定的環(huán)境下才有可靠顯露,系統(tǒng)缺陷通常是由于對(duì)某些特定情況考慮不周造成的。因此測(cè)試不是為了表明程序正確;成功的測(cè)試也不是沒(méi)有發(fā)現(xiàn)錯(cuò)誤的測(cè)試。有意義的軟件測(cè)試應(yīng)該是從“破壞”軟件系統(tǒng)的角度出發(fā),精心設(shè)計(jì)最有可以暴露程序系統(tǒng)缺陷的測(cè)試方案。因此軟件測(cè)試的目標(biāo)應(yīng)

120、該是以盡可能少的代價(jià)和時(shí)間找出軟件系統(tǒng)中潛在的錯(cuò)誤和缺陷。</p><p>  5.2.2 組合測(cè)試</p><p>  組合測(cè)試也稱集成測(cè)試或子系統(tǒng)測(cè)試,通常采用自頂向下測(cè)試和自底向上測(cè)試兩種測(cè)試方法。組合測(cè)試的對(duì)象是指已經(jīng)通過(guò)單元測(cè)試的模塊,不是對(duì)零散模塊進(jìn)行單個(gè)測(cè)試,而是用系統(tǒng)化的方法裝配和測(cè)試軟件系統(tǒng),是一個(gè)嚴(yán)格的過(guò)程,必須認(rèn)真地進(jìn)行,其計(jì)劃的產(chǎn)生和單元模塊測(cè)試的完成日期要協(xié)調(diào)起來(lái)

121、,這種測(cè)試應(yīng)在系統(tǒng)目標(biāo)機(jī)上進(jìn)行,造成系統(tǒng)應(yīng)用的環(huán)境條件,除了開(kāi)發(fā)部分項(xiàng)目負(fù)責(zé)人參加以外,還應(yīng)該有相應(yīng)系統(tǒng)的用戶參加,給評(píng)審員進(jìn)行演示。</p><p><b>  5.3 測(cè)試方法</b></p><p>  一般來(lái)說(shuō),對(duì)程序測(cè)試有兩種測(cè)試方法:如果已經(jīng)知道了軟件系統(tǒng)應(yīng)具有的功能,可通過(guò)測(cè)試來(lái)對(duì)每個(gè)功能是否都能正常使用;如果知道程序的內(nèi)部工作過(guò)程,可以通過(guò)測(cè)試來(lái)檢測(cè)程

122、序內(nèi)部是否按照規(guī)格說(shuō)明書(shū)的規(guī)定正常進(jìn)行。前一種方法稱為黑盒測(cè)試,后一種方法稱為白盒子測(cè)試。黑盒測(cè)試又稱為功能測(cè)試,白盒子測(cè)試又稱為結(jié)構(gòu)測(cè)試。</p><p>  因?yàn)闀r(shí)間和項(xiàng)目的關(guān)系,沒(méi)有完全按照上述的測(cè)試方法進(jìn)行系統(tǒng)的測(cè)試,但在在開(kāi)發(fā)的過(guò)程當(dāng)中,保證部分合理的測(cè)試,并正確運(yùn)行驗(yàn)證,證明本系統(tǒng)具有相當(dāng)程序的穩(wěn)定.</p><p><b>  5.4 運(yùn)行效果圖</b>

123、</p><p><b>  5.5調(diào)試分析</b></p><p>  在前幾次測(cè)試過(guò)程中總是沒(méi)有見(jiàn)功能的實(shí)現(xiàn),經(jīng)過(guò)多次分析、查看代碼、查看資料,一步一步修改,總結(jié)錯(cuò)誤經(jīng)驗(yàn)和修改經(jīng)驗(yàn)。</p><p>  總結(jié)錯(cuò)誤及分析設(shè)計(jì)方法:</p><p> ?、僖淮尉帉?xiě)一大串代碼后才測(cè)試,運(yùn)行是出現(xiàn)錯(cuò)誤,查找錯(cuò)誤語(yǔ)句過(guò)多。解決

124、:每編寫(xiě)一定代碼后就測(cè)試一次。</p><p> ?、诮?jīng)過(guò)多次檢查語(yǔ)句,還是有錯(cuò)誤出現(xiàn)??赡軟](méi)有倒入包或定義未初始化(如數(shù)組)。</p><p> ?、劭蛻魴C(jī)沒(méi)有接收到服務(wù)器發(fā)送的信息。設(shè)計(jì)過(guò)程中缺少部分代碼、客戶機(jī)或服務(wù)器出現(xiàn)異常、設(shè)計(jì)思路錯(cuò)誤。</p><p> ?、苄薷目蛻魴C(jī)、服務(wù)器代碼很多次,測(cè)試還是有問(wèn)題。先做好服務(wù)器(或客戶機(jī)),再做客戶機(jī)(或服務(wù)器)。

125、防止錯(cuò)誤時(shí),即有修改服務(wù)器又有修改客戶機(jī),容易錯(cuò)亂。</p><p> ?、菔褂米⑨尫y(cè)試可疑錯(cuò)誤語(yǔ)句。</p><p> ?、薏恢赖闹R(shí)可以上網(wǎng)找看。</p><p><b>  第六章 結(jié) 論</b></p><p>  經(jīng)過(guò)一周的設(shè)計(jì)和開(kāi)發(fā),網(wǎng)絡(luò)聊天室系統(tǒng)基本就開(kāi)發(fā)完畢,系統(tǒng)具備了聊天室的一些相關(guān)的功能,如:登入

126、、驗(yàn)證進(jìn)入聊天室、聊天室主界面、查看聊客、幫助、離開(kāi)。通過(guò)這次畢業(yè)設(shè)計(jì),我對(duì)在大學(xué)里學(xué)習(xí)的知識(shí)又重新回顧了一遍,又從一些書(shū)籍中學(xué)到了一些開(kāi)發(fā)聊天室系統(tǒng)所需要的軟件,比如Java Socket技術(shù)。也對(duì)以往到現(xiàn)今聊天室的狀況做了一個(gè)比較細(xì)致的了解和研究,在本篇論文中,我是通過(guò)用流程圖來(lái)清晰的表現(xiàn)我的設(shè)計(jì)思路,展示了這個(gè)聊天室系統(tǒng)的一些特色。</p><p>  該聊天室作為一個(gè)簡(jiǎn)單的網(wǎng)絡(luò)聊天室系統(tǒng),其提供的功能比較

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論