版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 摘 要</b></p><p> 在網(wǎng)絡(luò)越來越發(fā)達(dá)的今天,人們對(duì)網(wǎng)絡(luò)的依賴越來越多,越來越離不開網(wǎng)絡(luò),由此而產(chǎn)生的聊天工具越來越多,例如,國外的ICQ、國內(nèi)騰訊公司開發(fā)的OICQ?;贘ava網(wǎng)絡(luò)編程的強(qiáng)大功能,本次畢業(yè)設(shè)計(jì)使用Java編寫一個(gè)聊天系統(tǒng)。 一般來說,聊天工具大多數(shù)由客戶端程序和服務(wù)器程序外加服務(wù)器端用于存放客戶數(shù)據(jù)的數(shù)據(jù)庫組成,本系統(tǒng)
2、采用客戶機(jī)/服務(wù)器架構(gòu)模式通過Java提供的Socket類來連接客戶機(jī)和服務(wù)器并使客戶機(jī)和服務(wù)器之間相互通信,由于聊天是多點(diǎn)對(duì)多點(diǎn)的而Java提供的多線程功能用多線程可完成多點(diǎn)對(duì)多點(diǎn)的聊天,數(shù)據(jù)庫管理系統(tǒng)用SQL Server2000完成并通過JDBC-ODBC橋訪問數(shù)據(jù)庫。</p><p> 本系統(tǒng)建立在JAVA平臺(tái)上,系統(tǒng)的設(shè)計(jì)使用了面向?qū)ο蠹夹g(shù)和面向?qū)ο蟮脑O(shè)計(jì)原則。系統(tǒng)采用C/S結(jié)構(gòu),客戶端與客戶端以及客
3、戶端與服務(wù)器端之間通過Socket傳送消息。使用JAVA語言編寫,開發(fā)工具采用Eclipse。服務(wù)器端設(shè)計(jì)與實(shí)現(xiàn)過程中,采用了多線程技術(shù),可以在單個(gè)程序當(dāng)中同時(shí)運(yùn)行多個(gè)不同的線程,執(zhí)行不同的任務(wù)。大大增強(qiáng)了程序?qū)Ψ?wù)器資源的利用。</p><p> 聊天系統(tǒng)完成后將可進(jìn)行多人對(duì)多人的聊天,對(duì)好友進(jìn)行添加、刪除,對(duì)新用戶的注冊(cè),發(fā)送消息、接受消息等等功能。</p><p> 關(guān)鍵字:多線
4、程 ;客戶機(jī)/服務(wù)器 ;JAVA ; Socket ; Eclipse ; </p><p><b> 目 錄</b></p><p> 第一章 需求分析1</p><p> 1.1可行性分析1</p><p> 1.1.1 可行性分析1</p><p> 1.1.2系統(tǒng)功能
5、需求1</p><p> 1.1.3 系統(tǒng)性能需求2</p><p> 1.1.4 系統(tǒng)運(yùn)行需求2</p><p> 1.2 數(shù)據(jù)流圖2</p><p> 1.2.1 頂層數(shù)據(jù)流圖2</p><p> 1.2.2 一層數(shù)據(jù)流圖3</p><p> 第二章 概要設(shè)計(jì)4
6、</p><p> 2.1系統(tǒng)實(shí)現(xiàn)原理4</p><p> 2.2 系統(tǒng)實(shí)現(xiàn)層次圖:5</p><p> 2.3各模塊詳細(xì)功能5</p><p> 2.3.1服務(wù)器端結(jié)構(gòu)5</p><p> 2.3.2 客戶端結(jié)構(gòu)6</p><p> 第三章 詳細(xì)設(shè)計(jì)7</p&g
7、t;<p> 3.1 系統(tǒng)流程圖7</p><p> 3.1.1 系統(tǒng)總體流程圖7</p><p> 3.1.2 系統(tǒng)客戶端流程圖8</p><p> 3.2 編寫服務(wù)器端程序8</p><p> 3.2.1 問題陳述8</p><p> 3.2.2 解決方案9</p&g
8、t;<p> 3.3客戶端程序編寫13</p><p> 3.3.1 用戶登錄13</p><p> 3.3.2收集用戶登錄信息13</p><p> 3.3.3 聊天室14</p><p><b> 結(jié) 論20</b></p><p><b> 參考
9、文獻(xiàn)21</b></p><p><b> 致謝22</b></p><p><b> 第一章 需求分析</b></p><p><b> 1.1可行性分析</b></p><p> 1.1.1 可行性分析</p><p> 經(jīng)
10、濟(jì)可行性:由于本系統(tǒng)的主要背景是畢業(yè)課程設(shè)計(jì),不注重直接的經(jīng)濟(jì)效益和其后的發(fā)展方向,只在注重自身水平和能力的提高,對(duì)自身的經(jīng)濟(jì)要求也不高,只要有一臺(tái)能運(yùn)行Java軟件的電腦便可,所以不用考慮到經(jīng)濟(jì)問題。</p><p> 技術(shù)可行性: 本系統(tǒng)的開發(fā)利用Microsoft SQL Server2000作為本系統(tǒng)的數(shù)據(jù)庫,它是一個(gè)支持多用戶的新型數(shù)據(jù)庫,適用于大中規(guī)模的數(shù)據(jù)量需求。學(xué)校校園網(wǎng)的建設(shè)也為新系統(tǒng)服務(wù)器/
11、客戶端的結(jié)構(gòu)提供了硬件的支持。使用Java作為系統(tǒng)開發(fā)的開發(fā)環(huán)境,它提供完善的指令控制語句、類與對(duì)象的支持及豐富的數(shù)據(jù)類型,給開發(fā)高性能系統(tǒng)提供的保障為開發(fā)滿足客戶要求的系統(tǒng),保證了代碼的模塊化要求,而代碼模塊化的提高,非常有利于以后對(duì)新系統(tǒng)的擴(kuò)展與修改。</p><p> 運(yùn)行可行性: 本系統(tǒng)為一個(gè)小型的局域網(wǎng)聊天系統(tǒng),所耗費(fèi)的資源非常的小,現(xiàn)在一般的電腦無論是硬件還是軟件都能夠滿足條件,因此,本系統(tǒng)在運(yùn)行上
12、是可行的。</p><p> 綜上所述,本系統(tǒng)的設(shè)計(jì)與開發(fā)在技術(shù)上和硬件設(shè)備上的條件都是滿足的</p><p> 因此,它在技術(shù)上是可行的。</p><p> 1.1.2系統(tǒng)功能需求</p><p> 本系統(tǒng)主要通過客戶端,服務(wù)器端來體現(xiàn)聊天系統(tǒng)的基本功能。</p><p><b> ?。?)服務(wù)器端
13、</b></p><p><b> 1.處理用戶注冊(cè)</b></p><p><b> 2.處理用戶登錄</b></p><p> 3.處理用戶發(fā)送信息,服務(wù)器監(jiān)控聊天內(nèi)容,服務(wù)器過濾非法內(nèi)容</p><p> 4.處理用戶得到信息</p><p><
14、;b> 5.處理用戶退出</b></p><p><b> 8. 服務(wù)器踢人。</b></p><p> 9. 保存服務(wù)器日志。</p><p> 10.保存用戶聊天信息。</p><p><b> ?。?)客戶端</b></p><p> 1.用
15、戶注冊(cè)界面及結(jié)果</p><p> 2.用戶登錄界面及結(jié)果</p><p> 3.用戶發(fā)送信息界面及結(jié)果</p><p> 4.用戶得到信息界面及結(jié)果</p><p> 5.用戶退出界面及結(jié)果</p><p> 1.1.3 系統(tǒng)性能需求</p><p> 實(shí)用性:為局域網(wǎng)聊天提供方便
16、,有效進(jìn)行作業(yè)管理。</p><p> 操作簡單:本系統(tǒng)應(yīng)該適用于不同水平的使用者,包括事業(yè)單位和企業(yè)單位,同時(shí)系統(tǒng)不應(yīng)太復(fù)雜和煩瑣,因此要求系統(tǒng)的操作盡可能簡單易行。</p><p> 技術(shù)先進(jìn):產(chǎn)品的系統(tǒng)設(shè)計(jì)和開發(fā)應(yīng)緊跟著整個(gè)計(jì)算機(jī)發(fā)展潮流,采用當(dāng)時(shí)最先進(jìn)的設(shè)計(jì)思想,利用最新的開發(fā)技術(shù)和開發(fā)工具。使系統(tǒng)能夠無論在功能設(shè)計(jì)上,還是在技術(shù)實(shí)現(xiàn)上,都處于同行業(yè)的領(lǐng)先地位。</p&g
17、t;<p> 安裝使用簡便:服務(wù)器端的安裝簡潔明了,客戶機(jī)無需再裝任何軟件就可以直接注冊(cè)登陸聊天。</p><p> 適應(yīng)性:應(yīng)該能廣泛應(yīng)用于不同類型的企事業(yè)單位。系統(tǒng)采用模塊化設(shè)計(jì),用戶可以根據(jù)自己的實(shí)際情況自行組合,使系統(tǒng)在不同的硬件環(huán)境下都能得以應(yīng)用。 </p><p> 代碼可讀性好:文中的代碼將盡可能簡潔,易懂。</p><p> 1
18、.1.4 系統(tǒng)運(yùn)行需求</p><p> 運(yùn)行環(huán)境:Windows 9x、2000、xp、2003,Linux</p><p> 必要環(huán)境:JDK 1.5 以上</p><p> 硬件環(huán)境:CPU 400MHz以上,內(nèi)存64MB以上</p><p><b> 1.2 數(shù)據(jù)流圖</b></p>&l
19、t;p> 1.2.1 頂層數(shù)據(jù)流圖</p><p> 圖2-1 頂層數(shù)據(jù)流圖</p><p> 1.2.2 一層數(shù)據(jù)流圖</p><p><b> . </b></p><p> 圖2-2 一層數(shù)據(jù)流圖</p><p> 1.2.3 二層數(shù)據(jù)流圖</p><
20、;p> 圖2-3 系統(tǒng)二層數(shù)據(jù)流圖</p><p><b> 第二章 概要設(shè)計(jì)</b></p><p><b> 2.1系統(tǒng)實(shí)現(xiàn)原理</b></p><p> 聊天系統(tǒng)的設(shè)計(jì)跟普通網(wǎng)站設(shè)計(jì)有著許多不同的地方,普通網(wǎng)站設(shè)計(jì)所考慮的因素,例如,普通網(wǎng)站需要對(duì)布局進(jìn)入大量美化以及動(dòng)畫設(shè)計(jì)等等,而聊天室只要提供滿足訪
21、客雙方直接實(shí)時(shí)聊天即可。因此,在設(shè)計(jì)聊天系統(tǒng)的過程中,必須要考慮好以下幾個(gè)設(shè)計(jì)要點(diǎn):</p><p> 在Internet上的聊天程序一般都是以服務(wù)器提供服務(wù)端連接響應(yīng),使用者通過客戶端程序登錄到服務(wù)器,就可以與登錄在同一服務(wù)器上的用戶交談,這是一個(gè)面向連接的通信過程。因此,程序要在TCP/IP環(huán)境下,實(shí)現(xiàn)服務(wù)器端和客戶端兩部分程序。</p><p> 圖3-1 系統(tǒng)實(shí)現(xiàn)原理圖<
22、/p><p> 2.2 系統(tǒng)實(shí)現(xiàn)層次圖:</p><p> 圖3-2 系統(tǒng)實(shí)現(xiàn)層次圖</p><p> 2.3各模塊詳細(xì)功能</p><p> 2.3.1服務(wù)器端結(jié)構(gòu)</p><p> 圖3-3 服務(wù)器端結(jié)構(gòu)圖</p><p> ServeFrame.java 為服務(wù)器端程序界面,負(fù)責(zé)
23、為服務(wù)器的啟動(dòng)提供界面服務(wù)。</p><p> AppServer.java 為服務(wù)器端啟動(dòng)界面,負(fù)責(zé)監(jiān)聽服務(wù)器的狀態(tài),在線人數(shù),最多在線人數(shù),服務(wù)器名稱,訪問協(xié)議,服務(wù)器IP,服務(wù)器端口以及用戶信息的管理,日志的保存。</p><p> Connection.java 是連接服務(wù)器和客戶端的橋梁,主要負(fù)責(zé)將客戶端的信息傳送給服務(wù)器,并將服務(wù)器端的信息反饋給客戶端,即所謂的“三次握
24、手”。也是Socket編程的重要部分。</p><p> WordFilter.java 負(fù)責(zé)將聊天過程中不合法的話語文件等過濾掉,返回合法內(nèi)容。</p><p> 2.3.2 客戶端結(jié)構(gòu)</p><p> 圖3-4 客戶端結(jié)構(gòu)圖</p><p> ChatClient.java 為客戶端程序啟動(dòng)類,負(fù)責(zé)客戶端的啟動(dòng)和退出。<
25、/p><p> Login.java 為客戶端程序登錄界面,負(fù)責(zé)用戶帳號(hào)信息的驗(yàn)證與反饋。</p><p> Register.java 為客戶端程序注冊(cè)界面,負(fù)責(zé)用戶帳號(hào)信息的注冊(cè)驗(yàn)證與反饋。</p><p> ChatRoom.java 為客戶端程序聊天室主界面,負(fù)責(zé)接收、發(fā)送聊天內(nèi)容與服務(wù)器端的Connection.java 親密合作。</p>
26、<p> Windowclose 為ChatRoom.java的內(nèi)部類,負(fù)責(zé)監(jiān)聽聊天室界面的操作,當(dāng)用戶退出時(shí)返回給服務(wù)器信息。</p><p> Clock.java 為客戶端程序的一個(gè)小程序,實(shí)現(xiàn)的一個(gè)石英鐘功能。</p><p><b> 第三章 詳細(xì)設(shè)計(jì)</b></p><p><b> 3.1 系統(tǒng)流程圖
27、</b></p><p> 3.1.1 系統(tǒng)總體流程圖</p><p> 圖4-1 系統(tǒng)總體流程圖</p><p> 3.1.2 系統(tǒng)客戶端流程圖</p><p> 圖4-2 客戶端流程圖</p><p> 3.2 編寫服務(wù)器端程序</p><p> 3.2.1 問題陳
28、述</p><p> 1. 接受用戶注冊(cè)信息并保存在一個(gè)基于文件的對(duì)象型數(shù)據(jù)庫。</p><p> 2. 能夠允許注冊(cè)過的用戶登錄聊天界面并可以聊天。</p><p> 3.2.2 能夠接受私聊信息并發(fā)送給特定的用戶。</p><p> 4. 服務(wù)器運(yùn)行在自定義的端口上1001.</p><p> 5. 服務(wù)
29、器監(jiān)控用戶列表和用戶聊天信息(除私聊外)。</p><p> 6. 服務(wù)器踢人,發(fā)送通知。</p><p> 7. 服務(wù)器保存日志。</p><p> 3.2.2 解決方案 </p><p> 3.2.2.1 后臺(tái)數(shù)據(jù)庫設(shè)計(jì)</p><p> 基于服務(wù)器跨平臺(tái)運(yùn)行的構(gòu)想,服務(wù)器的后臺(tái)數(shù)據(jù)庫使用了SQL Se
30、rver2000。</p><p> ?。?)login 表:</p><p><b> Login表</b></p><p> ?。?)register表</p><p><b> register表</b></p><p> 此表主要包含了用戶帳戶基本信息。<
31、/p><p> 聊天系統(tǒng)采用用戶名作為用戶帳號(hào),并給每個(gè)用戶生成一個(gè)唯一ID來做系統(tǒng)內(nèi)部的用戶標(biāo)識(shí)。</p><p><b> 3.2.2用戶注冊(cè)</b></p><p><b> 1.去數(shù)據(jù)庫讀數(shù)據(jù)</b></p><p> 首先創(chuàng)建一個(gè)File文件類,載入“user.txt”,再用對(duì)象輸入流
32、ObjectInputStream將用戶信息導(dǎo)入到系統(tǒng)中。</p><p><b> 2.客戶端請(qǐng)求注冊(cè)</b></p><p> 客戶端通過Register.java請(qǐng)求注冊(cè),填寫注冊(cè)信息,并驗(yàn)證密碼是否符合規(guī)定,是否兩次輸入一致,如不一致會(huì)提示重新輸入,最后將請(qǐng)求信息發(fā)送給服務(wù)器端。</p><p><b> 3.服務(wù)器端響
33、應(yīng)</b></p><p> 服務(wù)器端得到注冊(cè)請(qǐng)求會(huì)將對(duì)象輸入流轉(zhuǎn)化為文件輸出流,并反饋給客戶端??蛻舳说玫阶?cè)信息后會(huì)在前臺(tái)填寫注冊(cè)信息,然后創(chuàng)建文件輸出流,再用對(duì)象輸出流包裝后寫入本地文件將其持久化。最后關(guān)閉對(duì)象輸出流和文件輸入流。</p><p> 4.給客戶端返回信息</p><p> 將用戶注冊(cè)成功或失敗的信息用打印流包裝Socket以后
34、,輸出給客戶端注冊(cè)結(jié)果的詳細(xì)信息。</p><p> 5.關(guān)閉Socket連接</p><p> 當(dāng)以上的程序都正常運(yùn)行后,需要關(guān)閉Socket連接,否則將會(huì)浪費(fèi)服務(wù)器與客戶端之間的資源。</p><p> 3.2.2.3用戶登陸</p><p> 1.去數(shù)據(jù)庫讀用戶數(shù)據(jù)</p><p> 打開用戶數(shù)據(jù)庫文件
35、“User.txt”,將用戶數(shù)據(jù)對(duì)象集載入內(nèi)存,以供下面的程序使用。</p><p> 2.驗(yàn)證用戶名是否存在</p><p> 在對(duì)象數(shù)據(jù)庫中查找是否有與登錄用戶的用戶名相同的記錄,如果有繼續(xù)驗(yàn)證,否則退出驗(yàn)證處理,返回“沒有此用戶”錯(cuò)誤</p><p> 用戶登陸程序模塊如下:</p><p> 3.2.2.4用戶退出</p
36、><p><b> 1.接收退出信息</b></p><p> 當(dāng)用戶退出時(shí),客戶端將會(huì)用基于Socket的對(duì)象輸出流發(fā)送給服務(wù)器退出對(duì)象。</p><p> 2.在線列表中刪除用戶</p><p> 用戶退出后應(yīng)該把用戶從在線列表中刪除,否則用戶退出用戶還在在線列表中,那么該用戶下次將會(huì)無法登錄。</p>
37、;<p><b> 3.更新在線列表</b></p><p> 用戶退出后將服務(wù)器端監(jiān)控界面的用戶列表更新。否則用戶數(shù)據(jù)將會(huì)不同步。</p><p><b> 用戶退出模塊程序:</b></p><p> 3.2.2.5 接收用戶聊天信息</p><p> 1.接收用戶聊天信
38、息</p><p> 當(dāng)用戶發(fā)送聊天信息時(shí),服務(wù)端將會(huì)收到客戶端用Socket傳輸過來的聊天信息對(duì)象,然后將其強(qiáng)制轉(zhuǎn)換為Chat對(duì)象。</p><p> 2.過濾用戶聊天內(nèi)容的非法信息</p><p> 分析聊天信息對(duì)象的聊天內(nèi)容,用語言過濾類將非法字符過濾掉。語言過濾的時(shí)候?qū)?huì)打開“badword.txt”文件,不允許出現(xiàn)的關(guān)鍵詞將會(huì)存儲(chǔ)在文件中,關(guān)鍵字之間
39、以逗號(hào)分割。當(dāng)聊天內(nèi)容中出現(xiàn)要過渡的關(guān)鍵字是將會(huì)被系統(tǒng)屏蔽,而聊天內(nèi)容</p><p> 3.接收服務(wù)器端的系統(tǒng)消息</p><p> 當(dāng)有其他用戶登陸時(shí),系統(tǒng)會(huì)給在線的所有用戶發(fā)送用戶登陸信息,并且通過服務(wù)器可以給各用戶發(fā)送系統(tǒng)消息。系統(tǒng)消息發(fā)出后,如再有登錄者也可以接收到系統(tǒng)消息。</p><p><b> 4.返回給客戶端</b>&
40、lt;/p><p> 當(dāng)以上信息都封裝成功后,打開與客戶端連接的Socket的輸出流,然后再用ObjectOutputStream對(duì)象輸出流包裝后輸出給客戶端。</p><p> 3.3客戶端程序編寫</p><p> 程序?qū)⑼ㄟ^Register.java用戶注冊(cè)界面收集用戶的用戶名、密碼、年齡、電子郵箱。如圖4-7</p><p> 客
41、戶端用戶注冊(cè)信息模塊程序:</p><p> 3.3.1 用戶登錄</p><p> 3.3.2收集用戶登錄信息</p><p> 程序?qū)⑼ㄟ^Login.java用戶登錄界面收集用戶的用戶名、密碼,如圖</p><p> 圖4-15 收集用戶登錄信息圖</p><p><b> 3.3.3 聊天室&
42、lt;/b></p><p> 當(dāng)用戶登錄成功后,用戶的登錄界面將會(huì)隱藏,然后創(chuàng)建用戶聊天室窗口,在界面的標(biāo)題欄將會(huì)顯示當(dāng)前登錄用戶的用戶名,以防止一個(gè)機(jī)器上的用戶開多個(gè)賬號(hào)進(jìn)入聊天室后分不清哪個(gè)窗口是哪個(gè)用戶登錄的,界面第一行將顯示當(dāng)前在線人數(shù)。位于界面正中的兩個(gè)控件分別是List和TextBox用來顯示當(dāng)前服務(wù)器上的在線會(huì)員名單列表和公共聊天信息。</p><p> 位于界面
43、下方的就是一些用于聊天的功能控件和聊天內(nèi)容個(gè)性化配置控件。包括聊天對(duì)象,聊天語氣,聊天內(nèi)容,聊天字體,風(fēng)格,大小,顏色…….</p><p> 4.3.3.1 用戶發(fā)送信息</p><p> 用戶需要發(fā)送信息時(shí),在聊天內(nèi)容里寫下要發(fā)送的信息,然后點(diǎn)擊發(fā)送就可以發(fā)送到其他客戶端,也可以選擇私聊,聊天表情,聊天信息通過服務(wù)器發(fā)送到其他客戶端。如圖:</p><p>
44、 當(dāng)多個(gè)用戶同時(shí)在線時(shí)可以對(duì)某個(gè)人私聊,而第三個(gè)人的聊天界面會(huì)被屏蔽掉。</p><p><b> // "發(fā)送"按鈕</b></p><p> public void sendMessage() {</p><p> Chat chatobj = new Chat();</p><p>
45、chatobj.chatUser = strLoginName;</p><p> chatobj.chatMessage = txtMessage.getText();</p><p> chatobj.chatToUser = String.valueOf(cmbUser.getSelectedItem());</p><p> chatobj.whisp
46、er = chPrivateChat.isSelected() ? true : false;</p><p> chatobj.emote = emote.getSelectedItem().toString();</p><p> // 向服務(wù)器發(fā)送信息</p><p><b> try {</b></p><p&
47、gt; Socket toServer = new Socket(strServerIp, 1001);</p><p> ObjectOutputStream outObj = new ObjectOutputStream(toServer</p><p> .getOutputStream());</p><p> outObj.writeObject(
48、chatobj);</p><p> txtMessage.setText(""); // 清空文本框</p><p> outObj.close();</p><p> toServer.close();</p><p> } catch (Exception e) {</p><p>&
49、lt;b> }</b></p><p> } // sendMessage()結(jié)束</p><p> 3.3.3.3 保存聊天記錄</p><p> 當(dāng)用戶需要保存聊天記錄時(shí)可以直接點(diǎn)擊“保存”按鈕,為了防止多用戶聊天記錄文件沖突問題,聊天記錄將會(huì)以“用戶名_message.txt”為文件名,將信息保存在當(dāng)前應(yīng)用程序目錄下。如圖</p
50、><p><b> 保持模塊程序:</b></p><p> 4.3.3.4 顯示系統(tǒng)時(shí)間</p><p> 當(dāng)用戶需要查看當(dāng)前時(shí)間時(shí),可以直接點(diǎn)擊“時(shí)鐘”按鈕,將會(huì)啟動(dòng)一個(gè)漂亮的電子時(shí)鐘,</p><p><b> 時(shí)鐘模塊程序:</b></p><p> 圖4-22
51、 屏蔽聊天信息</p><p> FileReader fileReader = new FileReader(files);</p><p> BufferedReader read = new BufferedReader(fileReader);</p><p> while (true) {</p><p> String l
52、ine = read.readLine();</p><p> if (line == null) {</p><p><b> break;}</b></p><p> fileString += (line);</p><p> // fileString += (line + "\n")
53、;</p><p><b> }</b></p><p> read.close();</p><p> // System.out.println(fileString);</p><p> } catch (FileNotFoundException e) {</p><p> //
54、 TODO 自動(dòng)生成 catch 塊</p><p> e.printStackTrace();</p><p> } catch (IOException e) {</p><p> // TODO 自動(dòng)生成 catch 塊</p><p> e.printStackTrace();</p><p><
55、b> }</b></p><p> return fileString;</p><p><b> }</b></p><p> 3.3.6 退出聊天系統(tǒng)</p><p> 當(dāng)前用戶點(diǎn)擊“退出”按鈕或者關(guān)閉窗口時(shí),系統(tǒng)將會(huì)把用戶退出的信息打包成對(duì)象發(fā)送給服務(wù)器,并退出客戶端程序。</p&
56、gt;<p> 3.3.3.7出現(xiàn)異常信息</p><p> 在用戶聊天時(shí),當(dāng)服務(wù)器關(guān)閉或者與服務(wù)器無法連接時(shí),客戶端將會(huì)給出“不能連接到服務(wù)器!”的信息。并在用戶查看后退出客戶端。</p><p><b> 結(jié) 論</b></p><p> 通過這次的畢業(yè)作業(yè),使自己在JAVA編程語言的使用方面得到一個(gè)全面鍛煉自己的機(jī)會(huì)
57、,在這個(gè)模塊的界面開發(fā)方面,充分的學(xué)習(xí)和利用了JAVA Swing界面開發(fā)技術(shù),使自己在界面應(yīng)用和布局方面得到更多的實(shí)踐,應(yīng)用Socket技術(shù)實(shí)現(xiàn)網(wǎng)絡(luò)連接功能,對(duì)網(wǎng)絡(luò)的實(shí)現(xiàn)和通信方面有了進(jìn)一步的理解,并通過多線程方面的應(yīng)用,使客戶端和服務(wù)端可以實(shí)現(xiàn)多任務(wù)功能,在整個(gè)開發(fā)過程當(dāng)中應(yīng)用軟件工程的開發(fā)步驟,使自己專業(yè)理論知識(shí)的到進(jìn)一步的鞏固,項(xiàng)目開發(fā)經(jīng)驗(yàn)有不少的收獲。</p><p> (一) 軟件存在的問題<
58、/p><p> 軟件已經(jīng)編寫好了,但是還有許多可以改進(jìn)的地方;同時(shí)還存在著一些小問題。</p><p> 還有一些功能上的缺陷,這里我列舉一下,并提出一些解決的辦法,希望以后可以改進(jìn)。</p><p> ?、?操作的方便性、比如可以為一些常用按鈕設(shè)置快捷鍵,象登入系統(tǒng)時(shí),輸入完用戶名和密碼后直接回車;在用戶輸入完要發(fā)送的內(nèi)容時(shí),設(shè)置發(fā)送內(nèi)容的快捷方式ctrl+回車等
59、。</p><p> ?。?)在功能方面可以進(jìn)一步增加,如實(shí)現(xiàn)用戶間的文件傳輸,并可以進(jìn)行視屏,共享音樂等高級(jí)功能。</p><p> (3)執(zhí)行效率方面可以有待提高,優(yōu)化代碼結(jié)構(gòu),減少系統(tǒng)內(nèi)存泄露,提高運(yùn)行穩(wěn)定性等</p><p> (二)使界面變得更加美觀</p><p> 由于一直專注于功能的實(shí)現(xiàn),從而忽略了界面的設(shè)計(jì),本軟件今后
60、可以為用戶添加不同的頭像,并可以使窗體風(fēng)格更合理和更美觀,并且要使用戶有更多的自定義功能,設(shè)置自己的喜好和風(fēng)格。</p><p> 通過完成這次畢業(yè)設(shè)計(jì)的項(xiàng)目,使自己在項(xiàng)目實(shí)際開發(fā)方面有了進(jìn)一步的提高,并使自己感覺到成功的喜悅,并對(duì)自己在專業(yè)的未來發(fā)展更充滿信心,對(duì)自己在今后的工作中有更好的幫助。</p><p><b> 參考文獻(xiàn)</b></p>
61、<p> [1] 孟凡榮.?dāng)?shù)據(jù)庫原理與應(yīng)用.中國礦業(yè)大學(xué),2009(8)28-30</p><p> [2] 張虹.軟件工程與軟件開發(fā)工具.清華大學(xué)出版社.2009(1)55-75</p><p> [3] Bruce Eckel.Thinking in Java.機(jī)械工業(yè)出版社.2009(6)42-64</p><p> [4] 羅軍舟等. TC
62、P/IP協(xié)議及網(wǎng)絡(luò)編程技術(shù).清華大學(xué)出版社.2008(10)</p><p> [5] 孫一林,彭波.Java網(wǎng)絡(luò)編程實(shí)例.清華大學(xué)出版社.2003(4)</p><p> [6] 李樹青.Java通用范例開發(fā)金典.電子工業(yè)出版社.2009</p><p> [7] 王鵬.Java Swing 圖形界面開發(fā)與案例詳解.清華大學(xué)出版社.2008</p>
63、;<p> [8] 龐永慶,翟鵬.Java完全自學(xué)寶典.清華大學(xué)出版社.2008</p><p> [9] 劉永華,于春花.Java網(wǎng)絡(luò)編程.清華大學(xué)出版社.2008</p><p> [10] Boost Documentation,http://www.boost.org 或 http://boost.sourceforge.net </p><
64、p> [11] Boost.Asio Documentation,http://asio.sourceforge.net </p><p> [12] 孫桂蘭.電子商務(wù)網(wǎng)上書店系統(tǒng).北京:人民郵電出版社,2004</p><p> [13] Jalote P.Optimum control limits for employing statistical process con
65、trol in software process. IEEE Trans on Software Engineering,2002,28(12)</p><p> [14] 薩師煊,王珊.數(shù)據(jù)庫系統(tǒng)概述.第三版.北京:高等教育出版社,2004. </p><p> [15] B. Ford, M.I.T., P. Srisuresh, etc. Peer-to-Peer (P2P) c
66、ommunication across middleboxes. http://midcom-p2p.sourceforge.net/draft-ford-midcom-p2p-01.txt 2004</p><p> [16] 飛思科技產(chǎn)品研發(fā)中心. Java 2應(yīng)用開發(fā)指南[J]. 北京:電子工業(yè)出版社, 2002</p><p> [17] 薛為民, 夏文紅, 解侖.Java應(yīng)
67、用教程 北京:北京交通大學(xué)出版社 2005</p><p> [18] http://java.sun.com</p><p> [19] http://www.microjava.com/</p><p> [20] http://www.csdn.net/</p><p> [21] http://www.cnjm.net/tec
68、h/article1101.html</p><p><b> 致謝</b></p><p> 本文討論了如何利用JAVA技術(shù)開發(fā)聊天室系統(tǒng),基本滿足了結(jié)構(gòu)化、界面友好、速度快、安全性以及穩(wěn)定性等特點(diǎn)。</p><p> 在當(dāng)今電腦網(wǎng)絡(luò)密布的世界當(dāng)中,一個(gè)簡單高效的局域網(wǎng)通信工具是如此的具有實(shí)用性,所以我們應(yīng)當(dāng)重視對(duì)它的相關(guān)研究與開發(fā)。在
69、這次的畢業(yè)設(shè)計(jì)中,我應(yīng)用了JAVA開發(fā)工具在WINDOWS平臺(tái)上開發(fā)了一個(gè)基于WINDOWS平臺(tái)的局域網(wǎng)通信工具,在這一重要的領(lǐng)域進(jìn)行了相關(guān)的實(shí)踐,不管是對(duì)我的研究能力,還是實(shí)際動(dòng)手能力,還是資料查閱能力,都起了相當(dāng)大的益處。所以,我決定認(rèn)真總結(jié)這次畢業(yè)設(shè)計(jì)的經(jīng)驗(yàn),以及學(xué)習(xí)到的知識(shí),來更加的充實(shí)自己的頭腦和完善自己的知識(shí)結(jié)構(gòu)。</p><p> 系統(tǒng)著重研究并實(shí)現(xiàn)了網(wǎng)絡(luò)應(yīng)用的部分。根據(jù)實(shí)現(xiàn)的情況看,具有較友好的
70、聊天界面生成效果,以及流暢的網(wǎng)絡(luò)通信效果。生成的聊天室可以達(dá)到基本的聊天要求,具有較高的研究價(jià)值。</p><p> 一個(gè)月的忙碌和工作,本次畢業(yè)設(shè)計(jì)已經(jīng)接近尾聲,作為一個(gè)??粕漠厴I(yè)設(shè)計(jì),由于經(jīng)驗(yàn)的匱乏,難免有許多考慮不周全的地方,如果沒有導(dǎo)師的督促指導(dǎo),以及一起工作的同學(xué)們的支持,想要完成這個(gè)設(shè)計(jì)是難以想象的。在這里再次感謝我的導(dǎo)師,###老師。</p><p> 通過畢業(yè)設(shè)計(jì),發(fā)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(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)聊天軟件畢業(yè)論文
- 局域網(wǎng)聊天軟件畢業(yè)論文
- 局域網(wǎng)聊天軟件-畢業(yè)論文
- 局域網(wǎng)畢業(yè)論文---局域網(wǎng)聊天軟件
- 基于java局域網(wǎng)聊天軟件
- java局域網(wǎng)聊天室系統(tǒng)畢業(yè)論文
- 局域網(wǎng)聊天軟件的設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)論文
- java局域網(wǎng)聊天軟件大學(xué)設(shè)計(jì)好sqlserver
- 基于java的局域網(wǎng)聊天系統(tǒng)
- 局域網(wǎng)聊天工具設(shè)計(jì)畢業(yè)論文
- 局域網(wǎng)聊天系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)-畢業(yè)論文
- 局域網(wǎng)聊天程序java課程設(shè)計(jì)
- 原創(chuàng)畢業(yè)設(shè)計(jì)論文局域網(wǎng)聊天系統(tǒng)
- 軟件課程設(shè)計(jì)---局域網(wǎng)聊天程序
- 畢業(yè)設(shè)計(jì)--局域網(wǎng)聊天系統(tǒng)
- mfc小型局域網(wǎng)聊天室的實(shí)現(xiàn)畢業(yè)論文
- 局域網(wǎng)聊天系統(tǒng)畢業(yè)設(shè)計(jì)
- 局域網(wǎng)下的java聊天軟件
- 畢業(yè)論文---局域網(wǎng)聊天工具的設(shè)計(jì)與實(shí)現(xiàn)
- 軟件課程設(shè)計(jì)報(bào)告--局域網(wǎng)聊天程序
評(píng)論
0/150
提交評(píng)論