畢業(yè)設(shè)計(jì)(論文)-基于Java平臺(tái)上聊天系統(tǒng)的研究.doc_第1頁(yè)
畢業(yè)設(shè)計(jì)(論文)-基于Java平臺(tái)上聊天系統(tǒng)的研究.doc_第2頁(yè)
畢業(yè)設(shè)計(jì)(論文)-基于Java平臺(tái)上聊天系統(tǒng)的研究.doc_第3頁(yè)
畢業(yè)設(shè)計(jì)(論文)-基于Java平臺(tái)上聊天系統(tǒng)的研究.doc_第4頁(yè)
畢業(yè)設(shè)計(jì)(論文)-基于Java平臺(tái)上聊天系統(tǒng)的研究.doc_第5頁(yè)
已閱讀5頁(yè),還剩34頁(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引言1第1章 系統(tǒng)概述21.1本課題的來(lái)源21.2本課題的目的、內(nèi)容、要求31.3研究意義3第2章 技術(shù)選擇分析42.1 可行性分析42.2開(kāi)發(fā)工具的選擇52.3開(kāi)發(fā)技術(shù)的選擇5第3章 需求分析63.1項(xiàng)目概述63.2功能需求83.3質(zhì)量性能需求11第4章 概要設(shè)計(jì)124.1目的124.2運(yùn)行環(huán)境124.3條件與限制134.4體系結(jié)構(gòu)概述134.5功能設(shè)計(jì)13第5章 詳細(xì)設(shè)計(jì)及實(shí)現(xiàn)195.1 客戶端注冊(cè)205.2 登錄225.3 公聊235.4 私聊245.5發(fā)送系統(tǒng)消息265.6字體設(shè)置275.7發(fā)送表情275.8記錄保存和顯示285.9 功能邏輯實(shí)現(xiàn)28小結(jié)29致謝29參考文獻(xiàn)30英文摘要30基于Java平臺(tái)上聊天系統(tǒng)的研究基于Java平臺(tái)上聊天系統(tǒng)的研究作者:任靜作者簡(jiǎn)介:任靜,女,(1989.3 ),安徽省六安市人,漢族,2007年9月至2011年6月在安徽農(nóng)業(yè)大學(xué)信息與計(jì)算科學(xué)專業(yè)學(xué)習(xí)。論文完成時(shí)間:2011年5月14日 指導(dǎo)老師:唐淼(安徽農(nóng)業(yè)大學(xué)理學(xué)院信息與計(jì)算科學(xué)專業(yè) 學(xué)號(hào): 07119020)摘要:網(wǎng)絡(luò)聊天室是一種應(yīng)用廣泛網(wǎng)絡(luò)聊天方式,操作簡(jiǎn)單,功能豐富,是教學(xué)和學(xué)習(xí)面向?qū)ο蟮木幊趟枷氲睦硐腠?xiàng)目??梢允褂枚喾N編程語(yǔ)言設(shè)計(jì)和開(kāi)發(fā)出功能完善的網(wǎng)絡(luò)聊天室。本畢業(yè)設(shè)計(jì)論文介紹用JAVA語(yǔ)言分析與設(shè)計(jì)一個(gè)網(wǎng)絡(luò)聊天室的過(guò)程,本系統(tǒng)采用C/S架構(gòu)設(shè)計(jì),整個(gè)項(xiàng)目分為服務(wù)器端和客戶端。使用了最新的Java 2標(biāo)準(zhǔn)Swing組件,開(kāi)發(fā)出簡(jiǎn)潔美觀和布局合理的用戶和服務(wù)器界面;通過(guò)對(duì)數(shù)據(jù)流操作的合理設(shè)計(jì),實(shí)現(xiàn)信息傳遞、接受和數(shù)據(jù)保存。同時(shí),采用多線程、多任務(wù)的設(shè)計(jì)思想,開(kāi)發(fā)出性能穩(wěn)定,功能全面的服務(wù)器。通過(guò)本次畢業(yè)設(shè)計(jì)可以學(xué)到如何應(yīng)用和實(shí)現(xiàn)面向?qū)ο蟮母鞣N方法,如何使用Eclipse集成開(kāi)發(fā)環(huán)境來(lái)創(chuàng)建和開(kāi)發(fā)項(xiàng)目,從而研究系統(tǒng)的完整開(kāi)發(fā)。關(guān)鍵詞:聊天室;Java; Swing組件;多線程引言隨著科學(xué)技術(shù)的發(fā)展和社會(huì)的進(jìn)步,尤其是計(jì)算機(jī)大范圍的普及,網(wǎng)絡(luò)飛速發(fā)展的時(shí)代,網(wǎng)絡(luò)聊天成為人們生活中不可缺少的一部分,幾乎每個(gè)網(wǎng)民在上網(wǎng)的時(shí)候都會(huì)選擇聊天室與虛幻世界的人們進(jìn)行各種各樣的交談,聊天室對(duì)于眾多網(wǎng)民來(lái)說(shuō)并不陌生,它是網(wǎng)絡(luò)上大家討論交流的有效平臺(tái)。隨著聊天室使用的頻繁,各種各樣的聊天室相繼出現(xiàn),由于Java強(qiáng)大的Internet網(wǎng)絡(luò)程序設(shè)計(jì)功能,很多聊天室服務(wù)器端都是采用Java語(yǔ)言進(jìn)行實(shí)現(xiàn),尤其是應(yīng)用JAVA多線程的聊天室更為人們所關(guān)注。第1章 系統(tǒng)概述1.1本課題的來(lái)源中國(guó)互聯(lián)網(wǎng)絡(luò)信息中心(CNNIC)發(fā)布了第21次中國(guó)互聯(lián)網(wǎng)絡(luò)發(fā)展?fàn)顩r統(tǒng)計(jì)報(bào)告,報(bào)告顯示,截至2007年12月,中國(guó)網(wǎng)民數(shù)已經(jīng)達(dá)到了2.1億,略低于美國(guó)居世界第二位,其中寬帶用戶早已經(jīng)突破1.37億,達(dá)到1.63億,另外手機(jī)上網(wǎng)人數(shù)與日劇曾,根據(jù)信息產(chǎn)業(yè)部公布的2007年10月通信行業(yè)統(tǒng)計(jì)月報(bào),目前中國(guó)已有5.3億手機(jī)有效卡數(shù)。近幾年來(lái),中國(guó)手機(jī)有效卡數(shù)增長(zhǎng)一直維持在17%以上,平均每年增長(zhǎng)6000萬(wàn)張卡,增量非??捎^。 上網(wǎng)計(jì)算機(jī)已經(jīng)達(dá)到了7800萬(wàn),網(wǎng)民的人均每月上網(wǎng)費(fèi)用為74.9元;中國(guó)互聯(lián)網(wǎng)行業(yè)繼續(xù)了2006年快速發(fā)展的態(tài)勢(shì)。2007年一年中國(guó)網(wǎng)民增加了7300萬(wàn)人,年增長(zhǎng)率達(dá)到53.3%。相當(dāng)于在過(guò)去一年中,平均每天增加網(wǎng)民20萬(wàn)人,或平均每分鐘增加網(wǎng)民近140人。按照這個(gè)增長(zhǎng)速度,預(yù)計(jì)2008年一月份過(guò)后,中國(guó)網(wǎng)民將超越美國(guó)成為全球第一。隨著網(wǎng)絡(luò)普及和上網(wǎng)人數(shù)的大增,在國(guó)內(nèi)各大門戶網(wǎng)站都架設(shè)了大型聊天室。如:新浪聊天室、中華網(wǎng)社區(qū)聊天室、搜狐等都成為網(wǎng)民們的熱門聊天室。以新浪聊天室為例看,聊天室呈現(xiàn)積聚人氣作用,并開(kāi)設(shè)不同主題的聊天室以使網(wǎng)民們具有針對(duì)性的使用聊天室。新浪開(kāi)設(shè)許多主題鮮明的聊天室:如針對(duì)不同地域開(kāi)設(shè)了“同城聯(lián)盟”,可以方便網(wǎng)民們和同鄉(xiāng)之間聯(lián)絡(luò)和方便開(kāi)展一些地域性質(zhì)的活動(dòng)。為針對(duì)不同年齡層而開(kāi)設(shè)的“同齡話題”,使各年齡層的用戶可以方便的選擇自己的聊天對(duì)象群體,找到自己的合適的聊天話題。并且針對(duì)目前社會(huì)流行的熱門話題和流行話題都有相應(yīng)的主題室。隨著網(wǎng)絡(luò)技術(shù)的不段提高和改進(jìn),近些年來(lái)視頻聊天成為上網(wǎng)的熱門聊天方式,除了可以方便互相的交流外,可以更直觀的了解對(duì)方,真正實(shí)現(xiàn)面對(duì)面的即時(shí)聊天。并且現(xiàn)在隨著網(wǎng)絡(luò)聊天室的發(fā)展,其功能已經(jīng)超越了普通的聊天活動(dòng),如新浪聊天室定期邀請(qǐng)當(dāng)今社會(huì)知名人士、專家、業(yè)界領(lǐng)袖、優(yōu)秀人物、政府部門領(lǐng)導(dǎo)等開(kāi)展一些社會(huì)活動(dòng)、宣傳和討論等多種形式的活動(dòng)。通過(guò)網(wǎng)絡(luò)的形式更直接的和人們進(jìn)行互動(dòng),實(shí)現(xiàn)意見(jiàn)即時(shí)反饋,即時(shí)回答和解決網(wǎng)民們提出的問(wèn)題,使活動(dòng)的效果更快更好的得到發(fā)揮。發(fā)達(dá)國(guó)家的3G許可證發(fā)放工作都已經(jīng)基本完成,隨著3G技術(shù)標(biāo)準(zhǔn)、網(wǎng)絡(luò)設(shè)備、終端和業(yè)務(wù)的逐步成熟,3G許可證的發(fā)放已經(jīng)開(kāi)始從歐美地區(qū)向亞洲、非洲和中東歐地區(qū)轉(zhuǎn)移。日韓是全球3G發(fā)展最為成熟的地區(qū),截止到2006年3月底,日本和韓國(guó)的3G用戶數(shù)分別占總移動(dòng)用戶數(shù)的53%和94%。日本W(wǎng)CDMA用戶占全球WCDMA用戶的44%。韓國(guó)CDMA2000 1X EV-DO用戶占全球EV-DO用戶的52%。西歐移動(dòng)通信市場(chǎng)整體發(fā)展比較成熟,移動(dòng)用戶普及率處于飽和狀態(tài)。截止到2004年底,西歐移動(dòng)用戶3.52億,普及率高達(dá)90.1%,個(gè)別國(guó)家像英國(guó)、丹麥、希臘等移動(dòng)用戶普及率達(dá)到100%。到2007年4月底,我國(guó)移動(dòng)用戶數(shù)為4.87億以上。從調(diào)查中可以得知,移動(dòng)上網(wǎng)用戶顯著增多,對(duì)網(wǎng)絡(luò)聊天室的功能提出更多的要求和功能。同時(shí)網(wǎng)絡(luò)聊天室也是網(wǎng)絡(luò)應(yīng)用中出現(xiàn)較早的應(yīng)用軟件,其開(kāi)發(fā)技術(shù)和設(shè)計(jì)思想都已經(jīng)得到成熟的發(fā)展,并且已經(jīng)具有許多成功的案例。在開(kāi)發(fā)技術(shù)上已經(jīng)沒(méi)有什么技術(shù)難題,并且具有廣泛的應(yīng)用和市場(chǎng)空間。1.2本課題的目的、內(nèi)容、要求1.目的網(wǎng)絡(luò)聊天室是一項(xiàng)應(yīng)用廣泛,并且實(shí)用性強(qiáng)的一個(gè)應(yīng)用,雖然其功能簡(jiǎn)單,但是在其開(kāi)發(fā)技術(shù)和過(guò)程中,能夠充分學(xué)習(xí)和使用JAVA的技術(shù),如:開(kāi)發(fā)各界面(登入、注冊(cè)、公聊、私聊等界面)使用 Swing組件技術(shù),實(shí)現(xiàn)數(shù)據(jù)的保存使用JDBC數(shù)據(jù)庫(kù)連接和操作技術(shù),并且在開(kāi)發(fā)過(guò)程當(dāng)中,能充分的使用和體會(huì)面向?qū)ο蠹夹g(shù)的原理和方法。2.內(nèi)容一個(gè)網(wǎng)絡(luò)聊天室的運(yùn)行,首先是要有一個(gè)完整穩(wěn)定的服務(wù)器端,并且擁有多個(gè)客服端??头艘哂袑?shí)現(xiàn)用戶注冊(cè)和用戶登入,在登入成功后,要顯示出公聊界面,實(shí)現(xiàn)聊天功能并且能夠發(fā)送表情和保存聊天內(nèi)容和顯示聊天記錄等功能,在新用戶上線和用戶下線時(shí)要更新每個(gè)客戶端在線用戶列表名,并且可以和在線的用戶實(shí)現(xiàn)一對(duì)一的私聊功能。在服務(wù)器端可以實(shí)現(xiàn)不斷的監(jiān)聽(tīng)客戶的連接,并且根據(jù)客戶端發(fā)送過(guò)來(lái)的不同信息,如注冊(cè)信息、登入信息、公聊信息、私聊信息、退出信息等,服務(wù)器端要作出不同的響應(yīng),并且要實(shí)現(xiàn)數(shù)據(jù)庫(kù)的操作,如根據(jù)用戶注冊(cè)的信息保存在數(shù)據(jù)庫(kù)中,根據(jù)登入時(shí)發(fā)送來(lái)的用戶名和密碼檢測(cè)是否合法用戶等。3.要求主要涉及圖形用戶界面的開(kāi)發(fā)、布局和輸入/輸出流數(shù)據(jù)的控制,并且要通過(guò)Socket技術(shù)實(shí)現(xiàn)網(wǎng)絡(luò)功能,整個(gè)程序采用Swing圖形界面,要求熟練掌握J(rèn)ava圖形用戶界面的事件處理及部分Swing組件的使用。在代碼的編寫(xiě)上要充分體現(xiàn)Java面向?qū)ο箝_(kāi)發(fā)思想和多態(tài)性,提高代碼的重用性和高效性,要深入理解接口的作用和內(nèi)部對(duì)象等特性等。1.3研究意義本系統(tǒng)具有較好的現(xiàn)實(shí)意義,特別是隨著科學(xué)技術(shù)的發(fā)展和社會(huì)的進(jìn)步,尤其是計(jì)算機(jī)大范圍的普及,網(wǎng)絡(luò)飛速發(fā)展的今天,網(wǎng)絡(luò)聊天成為人們生活中不可缺少的一部分,幾乎每個(gè)網(wǎng)民在上網(wǎng)的時(shí)候都會(huì)選擇聊天室與虛幻世界的人們進(jìn)行各種各樣的交談,隨著聊天室使用的頻繁,各種各樣的聊天室相繼出現(xiàn),尤其是應(yīng)用JAVA多線程的聊天室更為人們所關(guān)注。所以這一系統(tǒng)實(shí)現(xiàn)人們所期望的頁(yè)面流暢,美觀,負(fù)載能力強(qiáng),靈活易用,性能穩(wěn)定的愿望。第2章 技術(shù)選擇分析2.1可行性分析在軟件開(kāi)發(fā)之前對(duì)其進(jìn)行可行性分析是十分必要的,可以知道該軟件是否合乎用戶的要求,以及行業(yè)標(biāo)準(zhǔn),最重要的是軟件的造價(jià)是否合乎用戶的要求。1.經(jīng)濟(jì)可行性由于該軟件是一個(gè)聊天室的開(kāi)發(fā),操作系統(tǒng)是Windows 、后臺(tái)數(shù)據(jù)庫(kù)采用Micsoft Access,開(kāi)發(fā)環(huán)境為Eclipse, 在軟件方面,都可以從網(wǎng)上直接下載。相關(guān)的學(xué)習(xí)資料也都可以從網(wǎng)上下載,也可以到圖書(shū)館查找,既經(jīng)濟(jì)又方便。但在實(shí)際應(yīng)用方面,既方便了用戶,又提高了網(wǎng)絡(luò)的管理水平,大大的節(jié)省了人力、財(cái)力、物力,聊天室的電擊率會(huì)大大提高。遠(yuǎn)遠(yuǎn)超出它的研發(fā)費(fèi)用。由于以上的各項(xiàng)分析,該軟件運(yùn)行靈活,又有一定的安全性,因此開(kāi)發(fā)該系統(tǒng)具有經(jīng)濟(jì)可行性。2.技術(shù)可行性(1) 就執(zhí)行平臺(tái)而言,必須考慮的問(wèn)題之一是用戶可能使用的操作系統(tǒng)。用戶可能使用的是Windows Linux。JAVA語(yǔ)言具有平臺(tái)無(wú)關(guān)性,可以不需要任何修改就可以運(yùn)行在支持JAVA的任何計(jì)算機(jī)上。(2) JAVA的Swing 組件開(kāi)發(fā)技術(shù)可以開(kāi)發(fā)豐富的圖形界面,并且Swing API類提供了豐富的外部接口和方法,可以方便實(shí)現(xiàn)系統(tǒng)功能。(3) 就項(xiàng)目開(kāi)發(fā)而言,純粹的面向?qū)ο螅由蠑?shù)量巨大的類所提供的方法(函數(shù))庫(kù)的支持,使得利用Java開(kāi)發(fā)各種應(yīng)用程序,可以說(shuō)是易如反掌。此外,在程序除錯(cuò)、修改、升級(jí)和增加新功能等方面,因其面向?qū)ο蟮奶匦?,使得這些維護(hù)也變得非常容易。(4) Java支持內(nèi)在的多線程運(yùn)行,提供分布式的并發(fā)機(jī)制,運(yùn)行效率高。(5) 異常處理,為了使Java程式更穩(wěn)定、更安全,Java引入了異常處理機(jī)制。能夠在程序中產(chǎn)生異常情況的地方,執(zhí)行相對(duì)應(yīng)的處理,不至于因突發(fā)或意外的錯(cuò)誤造成執(zhí)行中斷或是死機(jī)。通過(guò)這種異常處理,不僅能夠清晰地掌握整個(gè)程序執(zhí)行的流程,也使得程序的設(shè)計(jì)更為嚴(yán)謹(jǐn)。(6) 高性能,Java可以在運(yùn)行時(shí)直接將目標(biāo)代碼翻譯成機(jī)器指令。Sun用直接解釋器一秒鐘內(nèi)可調(diào)用300,000個(gè)過(guò)程。翻譯目標(biāo)代碼的速度與C/C+的性能沒(méi)什么區(qū)別。(7) 網(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)也很方便。(8) 源回收處理,GarbageCollection是由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)大的幫助。綜上所述,基于Java平臺(tái)的聊天系統(tǒng)的開(kāi)發(fā)設(shè)計(jì)具有技術(shù)可行性。2.2開(kāi)發(fā)工具的選擇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ā)工具的原因之一。Eclipse的可視化集成開(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)如下:1.開(kāi)放的可擴(kuò)展的IDE2.成功的底層圖形界面API3.強(qiáng)大的插件加載功能4.可以通過(guò)導(dǎo)入一些CVS相關(guān)的插件來(lái)實(shí)現(xiàn)版本管理的便易性2.3開(kāi)發(fā)技術(shù)的選擇本課題選擇了java Socket技術(shù)開(kāi)發(fā)網(wǎng)絡(luò)聊天室。什么是socket? socket是一種用于表達(dá)兩臺(tái)機(jī)器之間連接“終端”的軟件抽象。對(duì)于一個(gè)給定的連接,在每臺(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ù)時(shí),TCP/IP協(xié)議棧的每一層都給你的數(shù)據(jù)里添加適當(dāng)?shù)膱?bào)頭。有個(gè)好消息是java語(yǔ)言隱藏了所有這些細(xì)節(jié),這也是為什么他們有時(shí)被叫做“流socket”。思考一下socket像電話聽(tīng)筒一樣在電話的任意一端你和我通過(guò)一個(gè)專門的信道來(lái)進(jìn)行通話和接聽(tīng)。會(huì)話將一直進(jìn)行下去直到我們決定掛斷電話(除非我們使用蜂窩電話),除非我們掛斷電話,否則我們各自的電話線路都會(huì)占線。如果你需要在兩臺(tái)機(jī)器之間進(jìn)行通訊而不使用高級(jí)機(jī)制像ORBs(以及CORBA, RMI, IIOP等等),socket比較適合你。Socket的底層機(jī)制則相當(dāng)棘手。幸運(yùn)的是,java平臺(tái)給我們一些雖然簡(jiǎn)單但是相當(dāng)強(qiáng)大的高層抽象以至于我們創(chuàng)建和使用socket更加容易一些。一般而言,java socket有下面兩種類型:TCP socket(由Socket類實(shí)現(xiàn),下面的章節(jié)我們將對(duì)其討論)UDP socket(由DatagramSocket類實(shí)現(xiàn))TCP和UDP扮演同樣的角色,但是實(shí)現(xiàn)是不同的。兩者都接收傳輸協(xié)議數(shù)據(jù)包并把它們傳遞到表示層。TCP把信息分解成數(shù)據(jù)包(datagrams)并在接收端重新組裝起來(lái)。它還對(duì)丟失的數(shù)據(jù)包進(jìn)行重新傳輸?shù)恼?qǐng)求。TCP減少了上層的擔(dān)憂。UDP沒(méi)有組裝和重傳請(qǐng)求的功能。它只是傳輸數(shù)據(jù)包。更高層的層必須確保信息的完整性以及組合順序的正確性。第3章 需求分析3.1項(xiàng)目概述1.產(chǎn)品描述人們?nèi)粘I钪性絹?lái)越多地使用這項(xiàng)新的技術(shù)來(lái)為自己的工作和學(xué)習(xí)服務(wù)。一個(gè)操作簡(jiǎn)單、界面友好、運(yùn)行穩(wěn)定的網(wǎng)絡(luò)聊天室對(duì)于小型局域網(wǎng)內(nèi)的用戶可以起到很好的交流作用。本聊天室,所謂聊天室就是一個(gè)可以讓許多用戶同時(shí)互相通信的網(wǎng)上園地,個(gè)人用戶可以通過(guò)網(wǎng)上聊天室將自己融入整個(gè)主流社會(huì)中。由于目前上網(wǎng)的一般都是具有高學(xué)歷的新一代創(chuàng)業(yè)者,因此,在網(wǎng)上聊天室這個(gè)虛擬的社會(huì)中,可以結(jié)交各層次各地方的朋友,從而為自己獲取更多的知識(shí)和更多的閱歷。該小聊天室是為許多喜愛(ài)上網(wǎng)聊天的朋友開(kāi)發(fā)設(shè)計(jì)的,希望能在現(xiàn)有的眾多聊天室中給大家多一種的選擇。和許多大型的網(wǎng)絡(luò)聊天室相比該小聊天室比較簡(jiǎn)單,但能實(shí)現(xiàn)聊天的基本功能,點(diǎn)對(duì)多聊天,點(diǎn)對(duì)點(diǎn)聊天等,基于時(shí)間和技術(shù)的原因,很遺憾傳送文件的功能尚未實(shí)現(xiàn)。本聊天室主要由注冊(cè)界面、登錄界面、聊天室界面、私聊界面、查看聊天內(nèi)容界面、功能設(shè)置界面等構(gòu)成。整個(gè)設(shè)計(jì)簡(jiǎn)潔明了、實(shí)用,使用簡(jiǎn)單??蛻舳说侨胪ㄐ殴δ茉O(shè)置記錄保存用戶登入用戶注冊(cè)公聊私聊字體顏色字體類型字體大小表情公聊記錄添加文字圖3-1 客戶端結(jié)構(gòu)圖服務(wù)器監(jiān)聽(tīng)情況發(fā)送系統(tǒng)消息顯示登入情況圖3-2 服務(wù)器結(jié)構(gòu)圖2.產(chǎn)品功能本項(xiàng)目具有以下主要功能:(1)客戶端:n 用戶注冊(cè)功能,實(shí)現(xiàn)用戶的登入ID注冊(cè)和個(gè)人信息,并存入服務(wù)器數(shù)據(jù)庫(kù) 中。n 用戶登入功能,實(shí)現(xiàn)合法注冊(cè)用戶的登入。n 公聊功能,實(shí)現(xiàn)用戶和在線的所有用戶聊天方式。n 私聊功能,實(shí)現(xiàn)用戶和在線的其他用戶一對(duì)一的聊天方式。n 查看聊天記錄,實(shí)現(xiàn)用戶查看已聊天的歷史聊天內(nèi)容,分為公聊記錄和私聊記錄。n 發(fā)送表情和設(shè)置聊天內(nèi)容字體,并可以設(shè)置字體顏色和背景色等。(2)服務(wù)端:n 可以不斷的監(jiān)聽(tīng)客戶端請(qǐng)求n 顯示登入客戶的信息n 發(fā)送系統(tǒng)消息3.2功能需求1.用戶注冊(cè)1) 需求描述:用戶填寫(xiě)系統(tǒng)給出的注冊(cè)項(xiàng)目,并提交給系統(tǒng),成功注冊(cè)后,系統(tǒng)生成用戶所注冊(cè)的登入ID,并保存在數(shù)據(jù)庫(kù)當(dāng)中。2) 執(zhí)行者:用戶3) 前置條件:無(wú)4) 后置條件:無(wú)5) 正常過(guò)程:l 向服務(wù)端發(fā)送注冊(cè)請(qǐng)求l 服務(wù)端響應(yīng)客戶端,客戶端彈出注冊(cè)信息表單l 用戶填寫(xiě)完表單后將注冊(cè)數(shù)據(jù)傳給服務(wù)端處理,并保存在數(shù)據(jù)庫(kù)中l(wèi) 返回客戶端一個(gè)響應(yīng),顯示用戶注冊(cè)的ID,提示注冊(cè)成功。6) 異常過(guò)程(可選):l 用戶填寫(xiě)表單的數(shù)據(jù)格式不正確或表單中存在空缺的項(xiàng),客戶端給予提示信息,并將光標(biāo)定位到出錯(cuò)的地方。l 用戶注冊(cè)的項(xiàng)在數(shù)據(jù)庫(kù)中發(fā)生沖突,客戶端提示注冊(cè)不成功并提示用戶重新填寫(xiě)表單。l 服務(wù)器未啟動(dòng)或出現(xiàn)異常2.用戶登入1) 需求描述:用戶填寫(xiě)登入ID 和密碼,經(jīng)服務(wù)器驗(yàn)證成功后進(jìn)入聊天室主界面。2) 執(zhí)行者:用戶3) 前置條件:用戶成功注冊(cè)或已經(jīng)擁有一個(gè)合法的ID號(hào)4) 后置條件:無(wú)5) 正常過(guò)程:l 向服務(wù)端請(qǐng)求連接,并發(fā)送登錄信息。l 服務(wù)端處理并查詢數(shù)據(jù)庫(kù)中的用戶信息l 返回客戶端一個(gè)響應(yīng),提示登錄成功,彈出聊天室主界面。l 刷新其他在線用戶的用戶列表信息6) 異常過(guò)程(可選):l 用戶填寫(xiě)的ID或密碼與數(shù)據(jù)庫(kù)中的紀(jì)錄不匹配,客戶端提示登錄失敗。l 客戶端設(shè)置的服務(wù)器地址或端口有誤l 服務(wù)器未啟動(dòng)或出現(xiàn)異常3.公聊1) 需求描述:用戶在聊天室公聊界面的發(fā)言內(nèi)容,聊天室中的其他在線用戶可以正常接受并正確顯示(包括發(fā)送的表情和用戶設(shè)置的字體顏色)。2) 執(zhí)行者:登入用戶3) 前置條件:用戶登錄成功4) 后置條件:無(wú)5) 正常過(guò)程:l 客戶端用戶登入成功后,啟動(dòng)客戶端功能線程l 客戶端將用戶發(fā)送的信息打包傳送給服務(wù)端,服務(wù)端進(jìn)行數(shù)據(jù)分析后,并將用戶的信息進(jìn)行正確的處理,傳給處在聊天室的所有在線其他用戶并正常顯示。6) 異常過(guò)程(可選):l 客戶端與服務(wù)端斷開(kāi)連接,客戶端提示信息發(fā)送失敗。l 客戶端發(fā)送的內(nèi)容為空或包含不合法的字符內(nèi)容4.私聊1) 需求描述:用戶可選擇聊天室的在線用戶列表中其他用戶聊天。并且對(duì)方有消息提示,雙方發(fā)送的信息對(duì)于聊天室的其他用戶是不可見(jiàn)的。2) 執(zhí)行者:用戶3) 前置條件:用戶登錄成功,私聊的對(duì)方在線4) 后置條件:無(wú)5) 正常過(guò)程:l 客戶端與服務(wù)端建立通訊l 客戶端將用戶發(fā)送的信息打包傳送給服務(wù)端,服務(wù)端進(jìn)行數(shù)據(jù)分析,查找目的用戶的ID,并將用戶的信息傳給目的用戶l 目的用戶收到服務(wù)器的信息后,正確的顯示并保存。6) 異常過(guò)程(可選):l 客戶端與服務(wù)端斷開(kāi)連接,客戶端提示信息發(fā)送失敗。l 客戶端發(fā)送的私聊內(nèi)容包含不合法的字符7) 特殊需求(可選):不能與不在線的用戶進(jìn)行私聊5.發(fā)送表情1) 需求描述:用戶的聊天內(nèi)容可以是表情圖片2) 執(zhí)行者:用戶3) 前置條件:用戶可以正常聊天4) 后置條件:無(wú)5) 正常過(guò)程:l 客戶端與服務(wù)端建立通訊l 客戶端將表情所表示的信息傳送給服務(wù)端l 服務(wù)器端進(jìn)行數(shù)據(jù)分析后,查找目的用戶的ID,并將所處理的信息傳給目的用戶l 目的用戶端通過(guò)本地文件將信息翻譯成表情并正確顯示在顯示窗體中。6) 異常過(guò)程(可選):l 客戶端與服務(wù)端斷開(kāi)連接,客戶端提示服務(wù)器異常。l 客戶端發(fā)送的表情信息不正確或本地文件不存在異常6.聊天記錄1) 需求描述:用戶可以查詢聊天的歷史紀(jì)錄,包括公聊記錄和私聊記錄。2) 執(zhí)行者:用戶3) 前置條件:用戶正確登入后4) 后置條件:無(wú)5) 正常過(guò)程:l 發(fā)送、接收信息的同時(shí)將信息保存在本地文件中l(wèi) 信息發(fā)送框中可以查詢歷史聊天記錄l 從本地文件中讀取信息,并顯示在記錄顯示匡中。6) 異常過(guò)程(可選):l 服務(wù)端異常導(dǎo)致客戶端退出,客戶端提示服務(wù)器異常。l 客戶端讀取信息時(shí)目標(biāo)文件不存在7.系統(tǒng)消息1) 需求描述:在聊天室的每一個(gè)用戶都能接收服務(wù)端發(fā)送的的信息提示消息。2) 執(zhí)行者:服務(wù)端3) 前置條件:服務(wù)端正常運(yùn)行4) 后置條件:無(wú)5) 正常過(guò)程:l 服務(wù)器向所有在線用戶發(fā)送消息l 客戶端接收到消息,進(jìn)行消息處理,并正確顯示。6) 異常過(guò)程(可選):l 服務(wù)端異常,重啟服務(wù)器。l 出現(xiàn)網(wǎng)絡(luò)異常,發(fā)送系統(tǒng)消息失敗。8.字體屬性設(shè)置1) 需求描述:用戶可改變輸入消息的字體及顏色2) 執(zhí)行者:用戶3) 前置條件:用戶可以正常聊天4) 后置條件:無(wú)5) 正常過(guò)程:l 用戶為聊天信息選擇新的字體和顏色。l 客戶端將聊天信息及字體和顏色信息封裝,發(fā)送到服務(wù)端。l 服務(wù)端處理接受到的數(shù)據(jù)并正確轉(zhuǎn)發(fā)。l 目的客戶端將接收到的信息解包,根據(jù)信息的內(nèi)容,改變信息顯示的字體及顏色,并在目的客戶端正確顯示出字體效果。6) 異常過(guò)程(可選):l 雙方系統(tǒng)庫(kù)中的字體不匹配,信息將以默認(rèn)的字體顯示。l 對(duì)方不支持字體屬性的顯示9.用戶退出1) 需求描述:用戶在正常情況下退出聊天室。2) 執(zhí)行者:用戶3) 前置條件:用戶成功登錄聊天室4) 后置條件:無(wú)5) 正常過(guò)程:l 向服務(wù)器發(fā)送用戶登出消息l 服務(wù)器進(jìn)行用戶退出的數(shù)據(jù)處理l 服務(wù)器向聊天室其他用戶發(fā)送登出消息l 刷新其他在線用戶的用戶列表信息3.3質(zhì)量性能需求1.容錯(cuò)性需求當(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í)的處理或信息提示。2.穩(wěn)定性需求軟件應(yīng)正常完成所有功能需求。服務(wù)器端應(yīng)長(zhǎng)時(shí)間運(yùn)行無(wú)故障,故障修復(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)存泄露。要求系統(tǒng)可以承受告警風(fēng)暴和大數(shù)據(jù)量的沖擊,不出現(xiàn)內(nèi)存溢出等現(xiàn)象。3.軟件可靠性需求要確定合適的模塊粒度,各模塊之間要求松耦合,高內(nèi)聚;從而使整個(gè)系統(tǒng)的可靠性和穩(wěn)定性得到提高,并且便于系統(tǒng)維護(hù),和新模塊的添加。4.安全性需求安全性是防止網(wǎng)絡(luò)方面的攻擊。5.拓展性需求系統(tǒng)建成后,應(yīng)在現(xiàn)行系統(tǒng)上不需要做大的改動(dòng)或不影響整個(gè)系統(tǒng)結(jié)構(gòu),就可以增加功能模塊,這就必須在系統(tǒng)設(shè)計(jì)時(shí)留有接口,使其具有可擴(kuò)展性和維護(hù)性。6.易用性需求系統(tǒng)操作的界面必須簡(jiǎn)潔、操作方便易用、設(shè)計(jì)合理。第4章 概要設(shè)計(jì)4.1目的該階段目的在于明確網(wǎng)絡(luò)聊天室系統(tǒng)的數(shù)據(jù)結(jié)構(gòu)和軟件總體結(jié)構(gòu),各個(gè)軟件模塊的功能說(shuō)明,數(shù)據(jù)結(jié)構(gòu)的細(xì)節(jié),系統(tǒng)運(yùn)行配置與應(yīng)用方式以及使用的關(guān)鍵技術(shù)。4.2運(yùn)行環(huán)境運(yùn)行環(huán)境見(jiàn)下表:名 稱操作系統(tǒng)類型推薦操作系統(tǒng)版本推薦硬件(CPU/RAM/HD)數(shù)據(jù)庫(kù)客戶端Windows平臺(tái)windows 2000以上(IE6.0 以上)P4 1.7G/256M/40G服務(wù)器Windows平臺(tái)windows 2000以上P4 3.6G/8G/120G4.3條件與限制1.軟件設(shè)計(jì)應(yīng)當(dāng)表現(xiàn)出層次結(jié)構(gòu),它應(yīng)巧妙地利用各個(gè)軟件部件之間的控制關(guān)系。2.設(shè)計(jì)應(yīng)當(dāng)是模塊化的,即該軟件應(yīng)當(dāng)從邏輯上被劃分成多個(gè)部件,分別實(shí)現(xiàn)各種特定功能和子功能。3.設(shè)計(jì)最終應(yīng)當(dāng)給出具體的模塊(例如子程序或過(guò)程),這些模塊就具有獨(dú)立的功能特性。4.應(yīng)當(dāng)應(yīng)用在軟件需求分析期間得到的信息,采取循環(huán)反復(fù)的方法來(lái)獲得設(shè)計(jì)。4.4體系結(jié)構(gòu)概述本系統(tǒng)采用C/S的結(jié)構(gòu)設(shè)計(jì)模式,客戶端接收用戶的發(fā)送的信息到服務(wù)器,服務(wù)器通過(guò)處理轉(zhuǎn)發(fā)到另一個(gè)客戶端。客戶端采用圖形用戶界面,方便與用戶交互。服務(wù)器端用控制臺(tái)的方式方便控制操作。系統(tǒng)設(shè)計(jì)總體原則:本設(shè)計(jì)不限制用戶的組網(wǎng)方式。但對(duì)于互聯(lián)網(wǎng)環(huán)境下的安全問(wèn)題,本系統(tǒng)不能保證解決。系統(tǒng)要具有較強(qiáng)的靈活性,包括對(duì)功能設(shè)置的管理。整個(gè)系統(tǒng)要使用簡(jiǎn)單,界面要美觀、大方,具有人性化特點(diǎn)。模塊劃分盡量簡(jiǎn)單明了,充分考慮用戶已經(jīng)習(xí)慣的劃分分類??蛻舳朔譃橛脩糇?cè)、用戶登錄、信息通訊、字體設(shè)置、表情和保存聊天記錄。用戶注冊(cè)和用戶登錄封裝在用戶登錄的界面中,用戶列表模塊封裝在系統(tǒng)的主界面中。信息通訊、字體設(shè)置、表情和保存聊天記錄模塊封裝在聊天界面中。服務(wù)端實(shí)現(xiàn)消息接收、消息記錄。4.5功能設(shè)計(jì)1.用戶注冊(cè)通過(guò)注冊(cè)模塊實(shí)現(xiàn)用戶的在線注冊(cè),所填寫(xiě)的注冊(cè)項(xiàng)目有:用戶名、頭像、口令、口令確認(rèn)、性別、年齡、E-mail。用戶注冊(cè)界面正確填寫(xiě)注冊(cè)項(xiàng)提交注冊(cè)成功服務(wù)器正確填寫(xiě)錯(cuò)誤圖4-1注冊(cè)活動(dòng)圖2.用戶登入用戶用過(guò)登入界面,填寫(xiě)登入用戶名和口令實(shí)現(xiàn)系統(tǒng)的登入用戶進(jìn)入登界面輸入用戶名和密碼提交進(jìn)入系統(tǒng)服務(wù)器登入信息合法登入信 息不合法圖4-2登錄活動(dòng)圖3.公聊用戶登入成功后進(jìn)入公聊界面,通過(guò)輸入聊天內(nèi)容實(shí)現(xiàn)和其他的用戶聊天,并可以顯示其他用戶發(fā)送的公聊信息。用戶輸入信息發(fā)送消息服務(wù)器格式正確格式有誤圖4-3公聊活動(dòng)圖4.私聊用戶通過(guò)選擇在線用戶列表的其他用戶,通過(guò)單擊列表中的用戶名顯示與其私聊的對(duì)話框,實(shí)現(xiàn)和選中的用戶進(jìn)行私聊方式進(jìn)行交流,其他用戶不可見(jiàn)。用戶選擇其他用戶輸入信息發(fā)送消息服務(wù)器格式正確格式有誤圖4-4私聊流程圖5.表情在用戶公聊或私聊時(shí)可以同時(shí),可以單擊表情按鈕打開(kāi)表情窗體,通過(guò)鼠標(biāo)事件可將選擇的表情寫(xiě)入發(fā)送窗口中,以增強(qiáng)聊天的表達(dá)方式和效果??梢允沽奶旃δ?、更豐富更有趣。用戶單擊表情功能表情框顯示表情在發(fā)送框發(fā)送表情圖4-5表情活動(dòng)圖6.字體設(shè)置用戶在聊天界面的功能模塊中,單擊字體功能按鈕,在彈出的字體設(shè)置框中選擇所需要設(shè)置的字體類型、字體顯示方式,并在字體功能按鈕下通過(guò)改變?nèi)珌?lái)改變字體的顏色設(shè)置的字體效果,并將設(shè)置好的字體屬性應(yīng)用到自己的發(fā)送信息中。用戶單擊字體功能字體設(shè)置框顯示設(shè)置字體效果應(yīng)用到發(fā)送消息中圖4-6字體設(shè)置活動(dòng)圖 7.記錄保存用戶在公聊和私聊的過(guò)程的同時(shí),將顯示在信息窗體中的聊天內(nèi)容保存到本地文件中,用戶可以通過(guò)單擊查看記錄按鈕查看歷史聊天內(nèi)容,并可以在本地機(jī)器下次登入后,查看歷史聊天的記錄。用戶信息顯示記錄按鈕記錄顯示框本地記錄文件單擊讀取保存信息圖4-7 記錄保存活動(dòng)圖8.系統(tǒng)消息用戶管理員通過(guò)啟動(dòng)服務(wù)器后,可以通過(guò)服務(wù)器操作界面象全部在線的用戶發(fā)送系統(tǒng)消息,用于發(fā)送公告,提示等系統(tǒng)消息,可以方便管理員和客戶的交流和管理。用戶顯示出系統(tǒng)消息發(fā)送系統(tǒng)消息用戶服務(wù)器啟動(dòng)正確消息內(nèi)容有誤圖4-8系統(tǒng)消息活動(dòng)圖第5章 詳細(xì)設(shè)計(jì)及實(shí)現(xiàn)本系統(tǒng)采用C/S設(shè)計(jì)模式,系統(tǒng)分為客戶端和服務(wù)器端,客戶端包括注冊(cè)模塊、登入模塊、公聊模塊、私聊模塊、功能設(shè)置模塊、和客戶端功能實(shí)現(xiàn)模塊等。服務(wù)器端包括服務(wù)器界面,服務(wù)器功能實(shí)現(xiàn)模塊等。5.1 客戶端注冊(cè)圖5-1注冊(cè)時(shí)序圖用戶必須填寫(xiě)注冊(cè)給定的全部選項(xiàng),并且按照正確的格式輸入,如年齡一項(xiàng)只能輸入數(shù)字,的格式等等,并可以在申請(qǐng)注冊(cè)前驗(yàn)證輸入的用戶名是否已被使用。實(shí)現(xiàn)該功能所寫(xiě)的類為:(1)、Register類: 用于構(gòu)建注冊(cè)的主界面主要成員變量:String name;String c_password;String c_age;String c_email;主要方法: Register() /實(shí)現(xiàn)界面元素和設(shè)定元素屬性 checkinfo() /發(fā)送提示的錯(cuò)誤信息 mes() /點(diǎn)擊事件處理actionPerformed()(2)、SendRegInfoThread類 用來(lái)檢測(cè)注冊(cè)的用戶名是否已被使用主要成員變量:String username; Socket socket; ObjectInputStream o_in; ObjectOutputStream o_out;主要方法:public SendRegInfoThread(String name) username=name; /構(gòu)造方法用于初始化public void run() /實(shí)現(xiàn)將信息的發(fā)送給服務(wù)器(3)、SendRegInfoSucThresd類 /發(fā)送注冊(cè)消息內(nèi)容主要成員變量:Socket socket; ObjectOutputStream o_out; ObjectInputStream o_in; HashMap hm; Object info; 主要方法: public SendRegInfoSucThread(Object info) =info;/構(gòu)造方法 public void run() /實(shí)現(xiàn)將注冊(cè)信息發(fā)送給服務(wù)器(4)、RegisterData /用戶發(fā)送給服務(wù)器端的注冊(cè)類型數(shù)據(jù)主要成員變量: private String userName; private String passWord; private String userAge; private String email; private String sex;主要方法:分別get,set上面的五個(gè)變量,獲得用戶的輸入的名字,密碼,年齡,電子郵件和性別的信息。5.2 登錄圖5-2登入時(shí)序圖在設(shè)置好IP和端口號(hào)的條件下,用戶在登入界面輸入已注冊(cè)好的用戶名和密碼登入,通過(guò)驗(yàn)證后登入聊天室主界面,輸入錯(cuò)誤返回提示。實(shí)現(xiàn)該功能的主要類和方法:(1)、Land類 /實(shí)現(xiàn)登入的主窗體 主要成員變量:String hostid; /服務(wù)器IP地址 int server_port; /服務(wù)端口 Socket client_socket; final File propertyFile; /屬性文件主要方法: public Land() /用于初始化登入界面的元素 public void actionPerformed(ActionEvent e) /連接服務(wù)器的方法體 public void run() /顯示登入主窗體主方法(2)、LoginData 類 /發(fā)送登入數(shù)據(jù)類型主要變量:private String userName; private String passWord;主要方法:非別用get,set方法獲得userName和passWord兩個(gè)變量的值。5.3 公聊圖5-3公聊時(shí)序圖用戶在公聊界面的信息輸入框中輸入要發(fā)送的信息和表情等,用戶可以通過(guò)功能設(shè)置按鈕設(shè)置自己定義的字體屬性 ,如:字體類型 、字體大小 、字體顏色 、字體顯示方式、表情等,并可以應(yīng)用到信息輸入框中, 點(diǎn)發(fā)送按鈕實(shí)現(xiàn)信息的發(fā)送。并可以顯示其他用戶發(fā)送的公聊信息和系統(tǒng)所發(fā)送的系統(tǒng)信息,并且按照發(fā)送來(lái)的信息中包含好的顯示方式正確顯示出信息。用戶上線或下線時(shí)要在顯示窗體中給出提示,并刷新用列表中的用戶名。并可以通過(guò)雙擊用戶名彈出與該用戶進(jìn)行私聊的對(duì)話窗體。實(shí)現(xiàn)該功能的主要類和方法:PublicChat類 /公聊界面本模塊主要要實(shí)現(xiàn)顯示在線用戶列表,可以保存聊天記錄,可以發(fā)送表情圖片,可以顯示對(duì)方發(fā)過(guò)來(lái)的字體信息,并且自己可以發(fā)送消息,顯示自己的用戶名的功能。并且有保存聊天記錄,背景,字體,表情的按鈕。5.4 私聊圖5-4私聊時(shí)序圖用戶在私聊界面的信息輸入框中輸入要發(fā)送的信息和表情等,用戶可以通過(guò)功能設(shè)置按鈕設(shè)置自己定義的字體屬性 ,如:字體類型 、字體大小 、字體顏色 、字體顯示方式、表情等,并可以應(yīng)用到信息輸入框中, 點(diǎn)發(fā)送按鈕實(shí)現(xiàn)私聊信息的發(fā)送。并可以顯示其他用戶發(fā)送過(guò)來(lái)的私聊信息,并且按照發(fā)送來(lái)的信息中包含好的顯示方式正確顯示出信息。實(shí)現(xiàn)該功能所用的主要類和方法PersonalChat類 /私聊界面類其中包括顯示聊天內(nèi)容的文本面板,顯示發(fā)送消息的文本面板,發(fā)送消息按鈕,關(guān)閉窗體按鈕,顯示聊天內(nèi)容的按鈕等。5.5發(fā)送系統(tǒng)消息 圖5-4 系統(tǒng)消息時(shí)序圖服務(wù)器端收到用戶上線或下線時(shí)發(fā)送給其他在線用戶消息提示,并可以根據(jù)需要,主動(dòng)發(fā)送消息給客戶,實(shí)現(xiàn)服務(wù)器端的管理。實(shí)現(xiàn)功能的主要類和方法(1)、ServerInterFace類 /服務(wù)器的用戶界面 private void initCompenent() / 組件初始化 class StartServer implements ActionListener / 內(nèi)部類啟動(dòng)和關(guān)閉監(jiān)聽(tīng)(2)、TalentServer類 /服務(wù)器啟動(dòng)模塊 public void run() / 發(fā)送系統(tǒng)消息 class SysinfoBuAction implements ActionListener /啟動(dòng)服務(wù)器5.6字體設(shè)置每個(gè)用戶可以根據(jù)自己的個(gè)人喜好設(shè)置自己要發(fā)送的內(nèi)容的字體屬性。并可以在其他目的客戶界面按照自己所設(shè)置的顯示方式顯示。主要設(shè)置了三種字體的屬性,分別為字體的樣式,大小和字型。實(shí)現(xiàn)該功能的主要類和方法 Fontset類 /字體設(shè)置窗體面板 public void actionPerformed(ActionEvent e) /實(shí)現(xiàn)選擇字體顏色,選擇字體類型,選擇字體大小,選擇字體顯示方式 功能 private void updataFont() /顯示更改后的字體表現(xiàn)5.7發(fā)送表情在用戶公聊或私聊時(shí)可以同時(shí),可以單擊表情按鈕打開(kāi)表情窗體,通過(guò)鼠標(biāo)事件可以將選擇描述表情的語(yǔ)句選中,并跟隨所要發(fā)送的內(nèi)容到聊天窗口中,以增強(qiáng)聊天的表達(dá)方式和效果??梢允沽奶旃δ?、更豐富更有趣。實(shí)現(xiàn)功能的主要類和方法 FaceFrame類 /顯示表情窗體5.8記錄保存和顯示本系統(tǒng)可以在應(yīng)用中將用戶聊天的記錄保存在本地文件當(dāng)中,用戶在本地下次登入后,可以查看歷史聊天記錄。方便用戶繼續(xù)聊天。實(shí)現(xiàn)該功能使用的主要類和方法(1)、ChatInfoSave類 /保存信息的方法類(2)、ChatInfoOpen類 /實(shí)現(xiàn)用戶查看聊天記錄5.9 功能邏輯實(shí)現(xiàn)本系統(tǒng)采用數(shù)據(jù)對(duì)象流的形式發(fā)送和接受信息??蛻舳诉B接服務(wù)器成功后就啟動(dòng)一個(gè)客戶端線程和服務(wù)器通信??蛻舳税l(fā)送的信息分為:注冊(cè)消息、注冊(cè)時(shí)用戶名驗(yàn)證消息、登入消息、公聊消息、私了消息、下線消息等。服務(wù)器端啟動(dòng)一個(gè)線程不斷的監(jiān)聽(tīng)客戶的請(qǐng)求,當(dāng)接受到客戶請(qǐng)求時(shí)就啟動(dòng)一個(gè)和該客戶端通信的線程。服務(wù)器端發(fā)送的信息分為:注冊(cè)成功消息 注冊(cè)失敗消息、注冊(cè)時(shí)驗(yàn)證用戶名成功消息、注冊(cè)時(shí)驗(yàn)證用戶名失敗消息、登入成功消息、登入失敗消息、轉(zhuǎn)發(fā)公聊消息、轉(zhuǎn)發(fā)的私了消息、刷新列表名消息等。實(shí)現(xiàn)該功能使用的主要類(1)、TransferMap類 /用于客戶端與服務(wù)器之間的消息傳遞(2)、LoginData類 /用于登入時(shí)發(fā)送的信息對(duì)象類型(3)、RegisterData類 /用于注冊(cè)時(shí)發(fā)送的信息對(duì)象類型(4)、ChatInformation類 /用于用戶公聊或私聊時(shí)發(fā)送的信息對(duì)象類型(5)、ClientThread類 /客戶端連接服務(wù)器成功后啟動(dòng)的線程(6)、ServerAffairThread類 服務(wù)器端為用戶啟動(dòng)的服務(wù)器線程(7)、LineDialog類 /實(shí)現(xiàn)提示用戶私聊消息(8)、Display_chatifn類 /顯示信息內(nèi)容小結(jié)本章講述了一個(gè)通用聊天系統(tǒng)的開(kāi)發(fā)設(shè)計(jì)過(guò)程,詳細(xì)的講述了以下五個(gè)方面的內(nèi)容: 系統(tǒng)概述:該部分主要講述了課題的來(lái)源背景,目的,要求以及意義。 技術(shù)選擇分析:對(duì)系統(tǒng)進(jìn)行了可行性分析,重點(diǎn)是技術(shù)的可行性分析,并選擇好本課題的開(kāi)發(fā)工具和技術(shù) 。 需求分析:介紹了系統(tǒng)的客戶端和服務(wù)器端的結(jié)構(gòu),并對(duì)系統(tǒng)所需要實(shí)現(xiàn)的功能進(jìn)行了簡(jiǎn)單的描述 概要設(shè)計(jì):概要設(shè)計(jì)的工作就是設(shè)計(jì)系統(tǒng)的大體框架,對(duì)系統(tǒng)的用例分析析和關(guān)鍵用例的流程分析。用例是系統(tǒng)中需要實(shí)現(xiàn)的功能模塊,不同的用例可能歸屬于不同的角色。在本章中,我們主要介紹了用戶注冊(cè)、登錄、公聊、私聊、表情和保存信息的流程分析,并對(duì)數(shù)據(jù)庫(kù)進(jìn)行了設(shè)計(jì)。 詳細(xì)設(shè)計(jì)及實(shí)現(xiàn):本小節(jié)簡(jiǎn)單的介紹了各個(gè)界面的設(shè)計(jì)以及它們之間的關(guān)聯(lián),并實(shí)現(xiàn)基本功能。由于一直專注于功能的實(shí)現(xiàn),從而忽略了界面的設(shè)計(jì),本軟件今后可以為用戶添加不同的頭像和表情,并可以使窗體風(fēng)格更合理和更美觀,并且要使用戶有更多的自定義功能,設(shè)置自己的喜好和風(fēng)格。在功能方面可以進(jìn)一步增加,如實(shí)現(xiàn)用戶間的文件傳輸,并可以進(jìn)行視屏,共享音樂(lè)等高級(jí)功能。致謝:在這幾個(gè)月的畢業(yè)設(shè)計(jì)過(guò)程中,通過(guò)導(dǎo)師的指導(dǎo),了解并熟悉了設(shè)計(jì)一個(gè)項(xiàng)目的具體過(guò)程和步驟,使自己在整個(gè)過(guò)程當(dāng)中不段的學(xué)習(xí)解決問(wèn)題的能力。我要衷心感謝唐淼導(dǎo)師在我的畢業(yè)設(shè)計(jì)過(guò)程中給予我的指導(dǎo)和幫助,本論文從選題到完成,每一步都是在導(dǎo)師的指導(dǎo)下完成的,傾注了導(dǎo)師大量的心血。在此,謹(jǐn)向?qū)煴硎境绺叩木匆夂椭孕牡母兄x!感謝導(dǎo)師在繁忙的工作之余閱讀并給出的建議。同樣要感謝身邊周圍同學(xué)提供的意見(jiàn)和幫助,使我能夠及時(shí)、順利地完成此次的畢業(yè)設(shè)計(jì);最后感謝各位專家導(dǎo)師對(duì)本論文的審閱!參考文獻(xiàn)(1)美 Joshua Bloch. Effective Java Programming Language Guide.Addison-Wesley Professional,05 June, 2001(2)美 Joshua Bloch.Effective Java: Second Edition.Addison-Wesley,28 May, 2008(3)美 Bruce Eckel.Thinking in Java (3rd Edition).Prentice Hall PTR,06 December, 2002(4)陳軼,姚曉昆編著.Java程序設(shè)計(jì)實(shí)驗(yàn)指導(dǎo).北京:清華大學(xué)出版社,2006(5)趙毅主編.跨平臺(tái)程序設(shè)計(jì)語(yǔ)言Java.西安:西安電子科技大學(xué)出版社,2006(6)吳其慶編著.Java程序設(shè)計(jì)實(shí)例教程.北京:冶金工業(yè)出版社,2006(7) 柳西玲,許斌編著.Java語(yǔ)言應(yīng)用開(kāi)發(fā)基礎(chǔ).北京:清華大學(xué)出版社,2006(8)鄭莉,王行言.馬素霞編著.Java語(yǔ)言程序設(shè)計(jì).北京:清華大學(xué)出版社,2006(9)陳更力,張青.基于Java Socket 網(wǎng)絡(luò)編程的一種新實(shí)現(xiàn).電腦開(kāi)發(fā)與應(yīng)用,2006年06期(10) 參考新浪聊天室、 騰訊聊天室等英文摘要:Based on a Java platform chat system is studiedAbstract:The network chat room is a kind of applied extensive network chat method, operate in ease and the function is abundant, It can be used as a good case for learning of java design language and the Object- Oriented Programming language, There is many programming language of design to develop a network chat room with perfect function.This graduation thesis of design introduction how to use the java language design and carry out network chat room, The system adoption the C/ S structure design, the whole system is divided into the server and client .Used standard modules of Swing of latest Java2, develop a simple and direct beauty user interface ,We make use of the Socket technology to interconnect the server and client by net-work ;organiz

溫馨提示

  • 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ù)網(wǎng)僅提供信息存儲(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)論