版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于java的網(wǎng)絡(luò)聊天室
- java聊天室程序(java)
- java聊天室設(shè)計(jì)
- 基于java網(wǎng)絡(luò)聊天室設(shè)計(jì)
- 基于java聊天室設(shè)計(jì)與實(shí)現(xiàn)
- 基于java的簡(jiǎn)單網(wǎng)絡(luò)聊天室編程
- 基于java的聊天室程序設(shè)計(jì)
- 基于java的聊天室—客戶端
- 基于java的cs模式網(wǎng)絡(luò)聊天室的
- java聊天室畢業(yè)論文
- 聊天室(java)-畢業(yè)論文
- java聊天室的設(shè)計(jì)與實(shí)現(xiàn)
- java課程設(shè)計(jì)--聊天室系統(tǒng)
- 基于java網(wǎng)頁(yè)版聊天室的設(shè)計(jì)與實(shí)現(xiàn)
- 基于java的網(wǎng)絡(luò)聊天室論文答辯稿
- java網(wǎng)絡(luò)聊天室課程設(shè)計(jì)
- java課程設(shè)計(jì)---聊天室系統(tǒng)
- java聊天室系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 畢業(yè)論文 java聊天室的設(shè)計(jì)
- Java聊天室的設(shè)計(jì)與實(shí)現(xiàn).doc
評(píng)論
0/150
提交評(píng)論