版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、京曉莊學(xué)JAVA 程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告題目:Java聊天室的設(shè)計(jì)與實(shí)現(xiàn)姓名:戴佳偉學(xué)號(hào):班級(jí):14軟件工程3班指導(dǎo)教師:王崢完成時(shí)間成績(jī):信息工程學(xué)院2016年6月目錄Java 聊天室的設(shè)計(jì)與實(shí)現(xiàn)引言Java聊天室開發(fā)背景在網(wǎng)絡(luò)越來越發(fā)達(dá)的今天,人們對(duì)網(wǎng)絡(luò)的依賴越來越多,越來越離不開網(wǎng)絡(luò),由此而產(chǎn)生的聊天工具越來越多,類似QQ、MSN,網(wǎng)絡(luò)聊天時(shí)一類的聊天系統(tǒng)的發(fā)展日新月異,因此產(chǎn)生了制作一個(gè)有簡(jiǎn)單聊天功能的網(wǎng)絡(luò)聊天程序;而且通過制作該程序還能更好的學(xué)習(xí)網(wǎng)絡(luò)軟件編程知識(shí)。本程序設(shè)計(jì)簡(jiǎn)單可以實(shí)現(xiàn)在同一局域網(wǎng)的聊天, 程序可以自動(dòng)掃描已經(jīng)上線的用戶, 上線用戶 可在同一聊天界面中實(shí)現(xiàn)群聊。如果需要
2、與其中的用戶進(jìn)行交談,則只需雙擊右側(cè)用戶列表,讀取 對(duì)方 IP 地址,便可在下面的輸入框內(nèi)輸入信息進(jìn)行發(fā)送,實(shí)現(xiàn)一對(duì)一私聊功能。1.1Java聊天室開發(fā)的目的和意義目的:(1)理解進(jìn)程消息通信的概念,如何實(shí)現(xiàn)兩個(gè)創(chuàng)建進(jìn)程之間的數(shù)據(jù)傳遞。(2)理解進(jìn)程共享變量的進(jìn)程通信。(3)熟悉并掌握 java 語(yǔ)言的代碼編寫(4)熟練使用開發(fā)工具 Eclipse(5)實(shí)現(xiàn)聊天室的一些基本功能意義:(1)實(shí)現(xiàn)局域網(wǎng)中的信息交互,界面盡量人性化且美觀,讓用戶便于接受( 2)用戶及時(shí)獲取自己想要的信息、促進(jìn)交談( 3)異常處理,對(duì)于用戶錯(cuò)誤的操作使用程序會(huì)有提示消息( 4)前期僅實(shí)現(xiàn)其基本雛形,后期可擴(kuò)性很高,可
3、實(shí)現(xiàn)統(tǒng)計(jì)在線人數(shù),發(fā)送圖片,界面美化, 用戶登陸注冊(cè)信息的采集,連接到數(shù)據(jù)庫(kù) etc.( 5) 后期可便于網(wǎng)站自身的廣告宣傳與商品推廣 因所學(xué)知識(shí)和能力的局限性, 僅能完成有限范圍內(nèi)的雛形生成與功能實(shí)現(xiàn),后期的功能實(shí)現(xiàn)需 要進(jìn)一步的深入學(xué)習(xí)才能使本課程設(shè)計(jì)日益完善。1.2完成的主要工作( 1)需求分析與總體設(shè)計(jì)、詳細(xì)設(shè)計(jì)、代碼分析( 2)實(shí)現(xiàn)程序所能運(yùn)行的功能( 3)選擇 Window 系統(tǒng),并選擇該操作系統(tǒng)中一種進(jìn)程通信的方式。( 4)運(yùn)用 Eclipse 開發(fā)工具和 java 語(yǔ)言實(shí)現(xiàn)該應(yīng)用程序。2 需求分析和總體設(shè)計(jì)需求分析與設(shè)計(jì)思路關(guān)鍵技術(shù)說明程序開發(fā)環(huán)境與運(yùn)行環(huán)境介紹:JDK(Jav
4、a?Development?kit是?SUN公司提供的一套Java開發(fā)環(huán)境,通常稱之為它主 要包括了一些常用的JDK工具、執(zhí)行時(shí)需要的函數(shù)庫(kù)、與C連接時(shí)所需的文件及一些Java應(yīng)用程序范例等。是一個(gè)編寫Java的Applet小程序和應(yīng)用程序的程序開發(fā)環(huán)境。JDK是整個(gè)Java的核心, 包括了Java運(yùn)行環(huán)境(JavaRuntimeEnvirnmen), 些Java工具和Java的核心類庫(kù)(JavaAPI)。不論什么Java應(yīng)用服務(wù)器實(shí)質(zhì)都是內(nèi)置了某個(gè)版 本的JDK。Java語(yǔ)言介紹:是一門編程語(yǔ)言,不僅吸收了語(yǔ)言的各種優(yōu)點(diǎn),還摒棄了C+里難以理解的、等概念, 因此Java語(yǔ)言具有功能強(qiáng)大和簡(jiǎn)單
5、易用兩個(gè)特征。Java語(yǔ)言作為靜態(tài)面向?qū)ο缶幊陶Z(yǔ) 言的代表,極好地實(shí)現(xiàn)了面向?qū)ο罄碚?,允許程序員以優(yōu)雅的思維方式進(jìn)行復(fù)雜的編程。Java具有簡(jiǎn)單性、面向?qū)ο?、平臺(tái)獨(dú)立與可移植性、動(dòng)態(tài)性等特點(diǎn)。Java可以編寫、和應(yīng)用程序等。Java提供了簡(jiǎn)單的類機(jī)制和動(dòng)態(tài)的構(gòu)架模型。對(duì)象中封裝了它的狀態(tài)變量和方法很好地實(shí)現(xiàn)了模塊化和信息隱藏;而類則提供了一類對(duì)象的原型通過繼承和重載機(jī)制子類可以使用或重新定義父類或超類所提供的一方法從而既實(shí)現(xiàn)了代碼的復(fù)用又提供了一種動(dòng)態(tài)的解決方案。Java是一種完全面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)一言它除了數(shù)組、布爾和字符二個(gè)基本數(shù)據(jù)類型外的其它類都是對(duì)象它不再支持全局變量。在Java中如
6、果不創(chuàng)建新類就無法創(chuàng)建程序Java程序在運(yùn)行時(shí)必須先創(chuàng)建一個(gè)類的實(shí)例然后才能提交運(yùn)行。Java同樣支持繼承特性Java的類可以從其它類中繼承行為但Java只支持類的單重繼承 即每個(gè)類只能從一個(gè)類中繼承。Java支持界面界面允許程序員定義方法但又不立即實(shí)現(xiàn)一個(gè)類可以實(shí)現(xiàn)多個(gè)界面利用界面可以得到多重繼承的許多優(yōu)點(diǎn)而又沒有多重繼承的問題編程工具介紹::一個(gè)開放源代碼的、基于Java的可擴(kuò)展開發(fā)平臺(tái)Eclipse語(yǔ)言發(fā)展:Eclipse是著名的跨平臺(tái)的自由(IDE)。最初主要用來開發(fā),通過安裝不同的插件Eclipse可以支持不同的計(jì)算機(jī)語(yǔ)言,比如C+和Python等開發(fā)工具。Eclipse的本身只是一
7、個(gè) 框架平臺(tái),但是眾多插件的支持使得Eclipse擁有其他功能相對(duì)固定的IDE軟件很難具有的靈活性。許多軟件開發(fā)商以Eclipse為框架開發(fā)自己的IDE。Eclipse最初由OTI和IBM兩家公司的IDE產(chǎn)品開發(fā)組創(chuàng)建, 起始于1999年4月IBM提供了最初的Eclipse代碼基礎(chǔ),包括Platform、JDT和PDE。Eclipse項(xiàng)目IBM發(fā)起, 圍繞著Eclipse項(xiàng)目已經(jīng)發(fā)展成為了一個(gè)龐大的Eclipse聯(lián)盟,有150多家軟件公司參與 到Eclipse項(xiàng)目中,其中包括、RationalSoftware、及等。Eclipse是一個(gè)開放源碼項(xiàng)目,它其實(shí)是VisualAgeforJava的替
8、代品,其界面跟先前的VisualAgeforJava差不多,但由 于其開放源碼,任何人都可以免費(fèi)得到,并可以在此基礎(chǔ)上開發(fā)各自的插件,因此越來 越受人們關(guān)注。隨后還有包括Oracle在內(nèi)的許多大公司也紛紛加入了該項(xiàng)目,Eclipse的目標(biāo)是成為可進(jìn)行任何語(yǔ)言開發(fā)的IDE 集成者,使用者只需下載各種語(yǔ)言的插件即可。需求分析隨著網(wǎng)絡(luò)和 IT 技術(shù)的快速發(fā)展以及日新月異的更新?lián)Q代,不斷滲透到人們的日常生活。如今In ternet 已經(jīng)成為于人們生活息息相關(guān)的一部分,也是人們獲取有用信息和促進(jìn)彼此之間相互交流的便捷重要的途徑之一。同時(shí),日益增多的機(jī)構(gòu)和企業(yè)組織開始利用網(wǎng)絡(luò)資源傳遞、發(fā)布、收集和管 理信
9、息,這對(duì)網(wǎng)絡(luò)進(jìn)行信息交互這種活動(dòng)是一次很大的機(jī)遇與挑戰(zhàn),從而使網(wǎng)絡(luò)的經(jīng)營(yíng)方式充滿了 活力。用戶需求主要功能分析:(1)聊天交談功能:用戶獲取信息的有效途徑(2)當(dāng)前用戶顯示功能:用戶明確自身的登陸狀態(tài)(3)文本框顯示聊天功能:便于用戶瀏覽信息(4)發(fā)送消息框顯示功能:存放用戶輸入想要發(fā)送的信息(5)發(fā)送按鈕功能:鼠標(biāo)點(diǎn)擊 發(fā)送用戶輸入消息框的信息(6)用戶頭像顯示功能:個(gè)性化用戶使用Java聊天室設(shè)計(jì)方案與思路1.設(shè)計(jì)方案:(1) 把自身本機(jī)的IP地址發(fā)送給所有正在打開這個(gè)聊天室程序的人(2) 其他人獲取了這個(gè) IP 地址后,會(huì)監(jiān)聽這個(gè)地址(3) ?如果有人發(fā)送了消息,所有的人都會(huì)接收并查看到
10、(4) 設(shè)計(jì)登錄程序,使其顯示登錄的ip 地址端口號(hào),以及用戶昵稱,通過登錄按鈕可以調(diào)用客戶端程序,實(shí)現(xiàn)聊天功能2.設(shè)計(jì)思路聊天系統(tǒng)的設(shè)計(jì)跟普通網(wǎng)站設(shè)計(jì)有著許多不同的地方,普通網(wǎng)站設(shè)計(jì)所考慮的因素,例如,普通網(wǎng)站需要對(duì)布局進(jìn)入大量美化以及動(dòng)畫設(shè)計(jì)等等,而聊天室只要提供滿足訪客雙方直接實(shí)時(shí)聊天即可。因此,在設(shè)計(jì)聊天系統(tǒng)的過程中,必須要考慮好以下幾個(gè)設(shè)計(jì)要點(diǎn):在In ternet 上的聊天程序一般都是以服務(wù)器提供服務(wù)端連接響應(yīng),使用者通過客戶端程序登錄到服務(wù)器,就可以與登錄在同一服務(wù)器上的用戶交談,這是一個(gè)面向連接的通信過程。因此,程序要在TCP/IP 環(huán)境下,實(shí)現(xiàn)服務(wù)器端和客戶端兩部分程序。1
11、.首先通過繼承 JFrame 類構(gòu)造服務(wù)器界面。2 .設(shè)計(jì)客戶端程序使其能夠完成正常的通信功能,并且可以更改背景顏色,設(shè)置字體顏色。3.設(shè)計(jì)偵聽程序,使其顯示登錄的ip 地址端口號(hào),以及用戶昵稱,通過偵聽按鈕可以調(diào)用客戶端程序,實(shí)現(xiàn)聊天功能。Java聊天室目錄結(jié)構(gòu)說明對(duì)系統(tǒng)包結(jié)構(gòu)、文件結(jié)構(gòu)列表說明,如表2-1、2-2所示。表2-1包名作用提供了用于系統(tǒng)的輸入和輸出,通過數(shù)據(jù)流,序列化和文件系統(tǒng)。捕獲捕獲輸入輸出異常提供了可移植的網(wǎng)絡(luò)I/O 接口,包括 TCP/IP、UDP、域名解析和Unix 域 socket儲(chǔ)存接收到的數(shù)據(jù),使用其中的方法提取傳送的內(nèi)容封裝 IP 地址捕獲主機(jī) IP 地址無法
12、確定異常提供了一套與本地圖形界面進(jìn)行交互的接口,建立和設(shè)置Java 的圖形用戶界面提供接口和類來解決由awt 組件引起的各種類型的事件抽象窗口工具包(AWT )為基礎(chǔ)使跨平臺(tái)應(yīng)用程序可以使用任何可插拔的外觀風(fēng)格,利用 Swing 豐富、靈活的功能和模塊化組件來創(chuàng)建優(yōu)雅的用戶界面表2-2文件名作用image存放用戶頭像圖片Java聊天室功能結(jié)構(gòu)對(duì)系統(tǒng)實(shí)現(xiàn)功能進(jìn)行說明,分析系統(tǒng)功能結(jié)構(gòu),畫出系統(tǒng)功能結(jié)構(gòu)圖,如圖2-1所示總體功能:(1) 實(shí)現(xiàn)在同一局域網(wǎng)的聊天(2)程序可以自動(dòng)掃描已經(jīng)上線的用戶(3) 需要與其中的用戶進(jìn)行交談,則只需雙擊右側(cè)用戶列表,輸入對(duì)方IP 地址,便可在下面的輸 入框內(nèi)輸入
13、信息進(jìn)行發(fā)送。(4) 添加了用戶頭像(5) 調(diào)整了界面窗口(6)Enter 鍵實(shí)現(xiàn)發(fā)送消息功能分段功能:1、 服務(wù)器端功能描述:?jiǎn)?dòng)服務(wù)器端。2、 客戶端功能描述:?jiǎn)?dòng)客戶端;顯示登錄昵稱:顯示系統(tǒng)時(shí)間:顯示聊天記錄:發(fā)送信息(實(shí)現(xiàn)按回車鍵發(fā)送消息);退出聊天室。功能實(shí)現(xiàn):1、 采用套接字實(shí)現(xiàn)網(wǎng)絡(luò)中的數(shù)據(jù)傳輸2、 盡量使用某個(gè)或某些應(yīng)用層的協(xié)議實(shí)現(xiàn)系統(tǒng)的部分功能3、 系統(tǒng)設(shè)計(jì)規(guī)范合理,操作流程方便簡(jiǎn)單詳細(xì)設(shè)計(jì)3.1 Java聊天室模塊實(shí)現(xiàn)3.1.1聊天功能模塊實(shí)現(xiàn)一、實(shí)現(xiàn)原理啟動(dòng)該程序時(shí)運(yùn)行如下過程:(1)把自身本機(jī)的IP地址發(fā)送給所有正在打開這個(gè)聊天室程序的人(2)其他人獲取了這個(gè)IP地址后
14、,會(huì)監(jiān)聽這個(gè)地址(3)?如果有人發(fā)送了消息,所有的人都會(huì)接收并查看到二、分層結(jié)構(gòu)及調(diào)用關(guān)系說明(1) 從main()函數(shù)入口開始分析,實(shí)例化ChatLineFrame這個(gè)類并執(zhí)行類repaint方法,重繪事件,刷新彈出的窗口的內(nèi)容(2) 在實(shí)例化ChatL in eFrame這個(gè)類過程中,首先定義ChatLi neFrame類繼承JFrame,聲明成員變量和框架布局內(nèi)容,然后構(gòu)造方法,實(shí)例化該類的時(shí)候,會(huì)自動(dòng)執(zhí)行函數(shù)內(nèi)的內(nèi)容。(3) 初始化窗口和其他部分(4) 實(shí)例化chatJFrame(5) 實(shí)例化ChatJFrame類,該類實(shí)現(xiàn)向外廣播消息(6) 實(shí)例化ReceiveMessage類,該類實(shí)現(xiàn)監(jiān)聽并接受消息(7) 啟動(dòng)UDPReceive類、UserBroadcast的線程。(8) 在定義初始化方法中, 為按鈕增加監(jiān)聽行為, 實(shí)例化IPListListener類與Sen dButt on Listener類。三、關(guān)鍵代碼分析class ChatJFrame extends JFrame; IP區(qū)分害U開String str2 =(0)+獲取目的IP地址String str3 =(0, i +1)+(255);14552019戴佳偉著、論文集、畢業(yè)論文、報(bào)告等序號(hào)作者.書名文獻(xiàn)類型標(biāo)志.
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 家政服務(wù)店租賃合同模板
- 2024標(biāo)準(zhǔn)工程居間合同范本
- 二零二五年度股權(quán)轉(zhuǎn)讓三方合作中的員工安置與權(quán)益保障協(xié)議3篇
- 二零二五年度百貨零售商與供應(yīng)商聯(lián)合促銷合同3篇
- 2024石粉環(huán)保型產(chǎn)品研發(fā)與應(yīng)用采購(gòu)合同3篇
- 2024簡(jiǎn)化版委托代理協(xié)議樣本版B版
- 2024年簡(jiǎn)化版純凈水源購(gòu)銷合同版B版
- 2024美容美發(fā)行業(yè)定制化服務(wù)與技術(shù)設(shè)備購(gòu)銷合同3篇
- 2024版技術(shù)服務(wù)競(jìng)標(biāo)協(xié)議模板指南一
- 二零二五年度知識(shí)產(chǎn)權(quán)產(chǎn)業(yè)聯(lián)盟合作協(xié)議2篇
- FZ/T 81024-2022機(jī)織披風(fēng)
- GB/T 24123-2009電容器用金屬化薄膜
- 艾滋病梅毒乙肝實(shí)驗(yàn)室檢測(cè)
- 國(guó)鐵橋梁人行道支架制作及安裝施工要點(diǎn)課件
- 領(lǐng)導(dǎo)科學(xué)全套精講課件
- 粵教版地理七年級(jí)下冊(cè)全冊(cè)課件
- 小學(xué)科學(xué)蘇教版六年級(jí)上冊(cè)全冊(cè)精華知識(shí)點(diǎn)(2022新版)
- 萎縮性胃炎共識(shí)解讀
- 《中外資產(chǎn)評(píng)估準(zhǔn)則》課件第8章 澳大利亞與新西蘭資產(chǎn)評(píng)估準(zhǔn)則
- 2022版義務(wù)教育語(yǔ)文課程標(biāo)準(zhǔn)(2022版含新增和修訂部分)
- 精品金屬線管布線施工工程施工方法
評(píng)論
0/150
提交評(píng)論