![基于Java的網(wǎng)絡(luò)聊天工具的項(xiàng)目規(guī)劃設(shè)計(jì)_第1頁](http://file1.renrendoc.com/fileroot_temp2/2020-6/22/6710615c-0f1d-4f0a-82b9-5e0d2caf45b3/6710615c-0f1d-4f0a-82b9-5e0d2caf45b31.gif)
![基于Java的網(wǎng)絡(luò)聊天工具的項(xiàng)目規(guī)劃設(shè)計(jì)_第2頁](http://file1.renrendoc.com/fileroot_temp2/2020-6/22/6710615c-0f1d-4f0a-82b9-5e0d2caf45b3/6710615c-0f1d-4f0a-82b9-5e0d2caf45b32.gif)
![基于Java的網(wǎng)絡(luò)聊天工具的項(xiàng)目規(guī)劃設(shè)計(jì)_第3頁](http://file1.renrendoc.com/fileroot_temp2/2020-6/22/6710615c-0f1d-4f0a-82b9-5e0d2caf45b3/6710615c-0f1d-4f0a-82b9-5e0d2caf45b33.gif)
![基于Java的網(wǎng)絡(luò)聊天工具的項(xiàng)目規(guī)劃設(shè)計(jì)_第4頁](http://file1.renrendoc.com/fileroot_temp2/2020-6/22/6710615c-0f1d-4f0a-82b9-5e0d2caf45b3/6710615c-0f1d-4f0a-82b9-5e0d2caf45b34.gif)
![基于Java的網(wǎng)絡(luò)聊天工具的項(xiàng)目規(guī)劃設(shè)計(jì)_第5頁](http://file1.renrendoc.com/fileroot_temp2/2020-6/22/6710615c-0f1d-4f0a-82b9-5e0d2caf45b3/6710615c-0f1d-4f0a-82b9-5e0d2caf45b35.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、中文摘要中文摘要 信息網(wǎng)絡(luò)得到飛速發(fā)展的今天,計(jì)算機(jī)和通信技術(shù)進(jìn)一步發(fā)展和結(jié)合, 深深的影響了我們的生活、學(xué)習(xí)和工作方式。網(wǎng)絡(luò)聊天工具已經(jīng)成為人們?nèi)?常交流的一種重要工具,它成本低,通信速度快,方便信息交流和資料的傳 遞。目前應(yīng)用比較廣泛的聊天工具有 QQ、飛信、微信、MSN 等,這些軟件簡(jiǎn) 單易用,深受大眾喜歡。 本論文中,首先對(duì)系統(tǒng)的開發(fā)背景進(jìn)行論述,對(duì)所應(yīng)用的開發(fā)工具與關(guān)鍵 技術(shù)做了簡(jiǎn)單的介紹。接著對(duì)系統(tǒng)的研究意義、研究現(xiàn)狀及設(shè)計(jì)目標(biāo)進(jìn)行了分 析,通過對(duì)系統(tǒng)需求和可行性進(jìn)行分析,確定了系統(tǒng)的功能模塊,并畫出相應(yīng) 的功能結(jié)構(gòu)圖、模塊圖。最后按系統(tǒng)總體設(shè)計(jì)的結(jié)果,對(duì)系統(tǒng)進(jìn)行結(jié)構(gòu)設(shè)計(jì)。 本小組
2、開發(fā)的網(wǎng)絡(luò)聊天系統(tǒng)是基于開放的 Java 應(yīng)用程序設(shè)計(jì)的,能動(dòng)態(tài)、 實(shí)時(shí)地完成信息的傳遞,且具有高效的交互性,能更有效地處理客戶請(qǐng)求,易 于維護(hù)和更新。系統(tǒng)采用客戶機(jī)/服務(wù)器的架構(gòu)模式,由客戶端程序和服務(wù)器程 序外加服務(wù)器端用于存放客戶數(shù)據(jù)的數(shù)據(jù)庫組成,使用 Java 提供的 Socket 類 以及 Java 的多線程功能,在不同的端口上部署各類服務(wù),可以在單個(gè)程序中同 時(shí)運(yùn)行多個(gè)不同進(jìn)程,而客戶端通過 Socket 發(fā)送信息給服務(wù)器,從而實(shí)現(xiàn)多點(diǎn) 對(duì)多點(diǎn)的聊天。 關(guān)鍵詞:關(guān)鍵詞:Java,交互性,Socket 類,多線程 目錄目錄 第第 1 1 章章 緒論緒論 .1 1.1 課題背景.1 1
3、.2 開發(fā)技術(shù).1 1.2.1 Java.1 1.2.2 TCP/IP.3 1.2.3 Socket.4 1.3 開發(fā)工具.5 1.3.1 Eclipse.5 1.3.2 StarUML.6 第第 2 2 章章 系統(tǒng)需求分析系統(tǒng)需求分析 .7 2.1 基本功能需求.7 2.2 性能需求.7 2.3 界面需求.7 第第 3 3 章章 系統(tǒng)設(shè)計(jì)系統(tǒng)設(shè)計(jì) .8 3.1 系統(tǒng)功能設(shè)計(jì).8 3.2 系統(tǒng)總體設(shè)計(jì).9 3.2.1 系統(tǒng)方案設(shè)計(jì).9 3.2.2 系統(tǒng)功能模塊圖.9 3.2.3 系統(tǒng)類圖.10 3.2.4 系統(tǒng)用例圖.11 3.2.5 時(shí)序圖.12 3.2.4 活動(dòng)圖.12 第第 4 4 章章
4、 系統(tǒng)實(shí)現(xiàn)系統(tǒng)實(shí)現(xiàn) .17 4.1 數(shù)據(jù)庫連接實(shí)現(xiàn).17 4.2 登錄、注冊(cè)功能實(shí)現(xiàn).18 4.3 聊天功能實(shí)現(xiàn).20 4.4 好友管理功能實(shí)現(xiàn).25 4.5 資源共享功能實(shí)現(xiàn).30 總結(jié)總結(jié) .34 參考文獻(xiàn)參考文獻(xiàn) .35 致謝致謝 .36 第第 1 1 章章 緒論緒論 1.11.1 課題背景課題背景 隨著互聯(lián)網(wǎng)的進(jìn)一步發(fā)展,網(wǎng)絡(luò)聊天工具成為人們?nèi)粘=涣鞯囊环N重要工 具,它成本低,通信速度快,方便信息交流和資料的傳遞。隨著網(wǎng)絡(luò)普及程度 的提高,人們對(duì)于通信軟件的要求越來越趨于簡(jiǎn)單操作,同步實(shí)時(shí),以及更簡(jiǎn) 單的網(wǎng)絡(luò)傳輸。 本次開發(fā)的網(wǎng)絡(luò)聊天系統(tǒng)是基于開放的 Java 應(yīng)用程序設(shè)計(jì)的,能動(dòng)態(tài)、
5、實(shí) 時(shí)地完成信息的傳遞,且具有高效的交互性,能更有效地處理客戶請(qǐng)求,易于 維護(hù)和更新。 系統(tǒng)分為兩部分:客戶端和服務(wù)器端??蛻舳酥饕獙?shí)現(xiàn)新建用戶、用戶登 錄、好友管理和消息的收發(fā)功能以及群聊功能,客戶端申請(qǐng)與服務(wù)器端建立連 接,當(dāng)客戶端與服務(wù)器端建立連接通道后就可以像服務(wù)器端發(fā)送新建用戶信息 和登錄信息,以及好友管理、信息編輯、發(fā)送和接收的功能;服務(wù)器端主要完 成建立連接、數(shù)據(jù)庫操作和監(jiān)聽客戶三大功能,服務(wù)器端建立一個(gè) Server Socket 的連接,不斷偵聽客戶端是否建立連接或斷開連接,如果有客戶端申請(qǐng) 連接就啟動(dòng)線程與客戶端建立連接并按照客戶端的請(qǐng)求對(duì)數(shù)據(jù)庫進(jìn)行操作并把 結(jié)果返回給客戶
6、端。 1.2 開發(fā)技術(shù)開發(fā)技術(shù) 1.2.1 Java Java 是一個(gè)由 Sun 公司開發(fā)的新一代高級(jí)編程語言。它可在各式各樣不同 機(jī)器、不同操作平臺(tái)的網(wǎng)絡(luò)環(huán)境中開發(fā)軟件。不論你使用的是哪種 WEB 瀏覽器, 哪種計(jì)算機(jī),哪種操作系統(tǒng),只要 WEB 瀏覽器上面注明了“支持 Java”,并且 裝有 JAVA 控件,你就可以看到生動(dòng)的主頁。Java 正在逐步成為 Internet 應(yīng)用 中最主要的開發(fā)語言,它徹底改變了軟件開發(fā)模式,帶來了自 PC 機(jī)以來又一次 革命,為飛速發(fā)展的網(wǎng)絡(luò)世界增添了新的動(dòng)力。 (一)JAVA 的主要特點(diǎn) Java 語言有下面一些特點(diǎn):簡(jiǎn)單、面向?qū)ο?、分布式、解釋?zhí)行、
7、安全、 體系結(jié)構(gòu)中立、可移植、高性能、多線程以及動(dòng)態(tài)性。 1.簡(jiǎn)單 Java 語言是一種面向?qū)ο蟮恼Z言,它通過提供最基本的方法來完成指定的 任務(wù)。Java 略去了運(yùn)算符重載、多重繼承等模糊的概念,且通過實(shí)現(xiàn)自動(dòng)垃圾 收集大大簡(jiǎn)化了程序設(shè)計(jì)者的內(nèi)存管理工作。 2.面向?qū)ο?Java 語言的設(shè)計(jì)集中于對(duì)象及其接口,它提供了簡(jiǎn)單的類機(jī)制以及動(dòng)態(tài)的 接口模型,實(shí)現(xiàn)了模塊化和信息隱藏;而類則提供了一類對(duì)象的原型,并且通 過繼承機(jī)制,子類可以使用父類所提供的方法,實(shí)現(xiàn)了代碼的復(fù)用。 3.分布性 Java 是面向網(wǎng)絡(luò)的語言。通過它提供的類庫可以處理 TCP/IP 協(xié)議,用戶 可以通過 URL 地址在網(wǎng)絡(luò)上很
8、方便地訪問其它對(duì)象。 4.安全性 用于網(wǎng)絡(luò)、分布環(huán)境下的 Java 必須要防止病毒的入侵。Java 不支持指針, 一切對(duì)內(nèi)存的訪問都必須通過對(duì)象的實(shí)例變量來實(shí)現(xiàn),這樣就防止程序員使用 “特洛伊”木馬等欺騙手段訪問對(duì)象的私有成員,同時(shí)也避免了指針操作中容 易產(chǎn)生的錯(cuò)誤。 5.體系結(jié)構(gòu)中立 Java 解釋器生成與體系結(jié)構(gòu)無關(guān)的指令,Java 程序可在任意的處理器上運(yùn) 行。這些指令對(duì)應(yīng)于 Java 虛擬機(jī)中的表示,Java 解釋器得到字節(jié)碼后,對(duì)它 進(jìn)行轉(zhuǎn)換,使之能夠在不同的平臺(tái)運(yùn)行。 6.可移植性 與平臺(tái)無關(guān)的特性使 Java 程序可以方便地被移植到網(wǎng)絡(luò)的不同機(jī)器上。另 外,Java 編譯器是由
9、Java 語言實(shí)現(xiàn)的,Java 運(yùn)行時(shí)系統(tǒng)由標(biāo)準(zhǔn) C 實(shí)現(xiàn),這使 得 Java 系統(tǒng)本身也具有可移植性。 7.解釋執(zhí)行 Java 解釋器直接對(duì) Java 字節(jié)碼進(jìn)行解釋執(zhí)行。字節(jié)碼本身攜帶了許多編 譯時(shí)信息,使得連接過程更加簡(jiǎn)單。 8.高性能 和其它解釋執(zhí)行的語言如 BASIC 不同,Java 字節(jié)碼的設(shè)計(jì)使之能很容易地 直接轉(zhuǎn)換成對(duì)應(yīng)于特定 CPU 的機(jī)器碼,從而得到較高的性能。 9.多線程 多線程機(jī)制使應(yīng)用程序能夠并行執(zhí)行,而且同步機(jī)制保證了對(duì)共享數(shù)據(jù)的 正確操作。通過使用多線程,程序設(shè)計(jì)者可以分別用不同的線程完成特定的行 為,而不需要采用全局的事件循環(huán)機(jī)制,這樣就很容易地實(shí)現(xiàn)網(wǎng)絡(luò)上的實(shí)時(shí)
10、交 互行為。 10.動(dòng)態(tài)性 Java 的設(shè)計(jì)使它適合于一個(gè)不斷發(fā)展的環(huán)境。在類庫中可以自由地加入 新的方法和實(shí)例變量而不會(huì)影響用戶程序的執(zhí)行。并且 Java 通過接口來支持多 重繼承,使之比嚴(yán)格的類繼承具有更靈活的方式和擴(kuò)展性。 (二)豐富的類庫 Java 提供了大量的類以滿足網(wǎng)絡(luò)化、多線程、面向?qū)ο?系統(tǒng)的需要。 1.語言包提供的支持包括字符串處理、多線程處理、例外處理、數(shù)學(xué)函數(shù) 處理等,可以用它簡(jiǎn)單地實(shí)現(xiàn) Java 程序的運(yùn)行平臺(tái)。 2.實(shí)用程序包提供的支持包括哈希表、堆棧、可變數(shù)組、時(shí)間和日期等。 3.輸入輸出包用統(tǒng)一的流模型來實(shí)現(xiàn)所有格式的 I/O,包括文件系統(tǒng)、 網(wǎng) 絡(luò)、輸入 4.低
11、級(jí)網(wǎng)絡(luò)包用于實(shí)現(xiàn) Socket 編程。 5.抽象圖形用戶接口包實(shí)現(xiàn)了不同平臺(tái)的計(jì)算機(jī)的圖形用戶接口部件, 包 括窗口、菜單、滾動(dòng)條、對(duì)話框等,使得 Java 可以移植到不同平臺(tái)的機(jī)器。 6.網(wǎng)絡(luò)包支持 Internet 的 TCP/IP 協(xié)議,提供了與 Internet 的接口。它支 持 URL 連接,WEB 即時(shí)訪問,并且簡(jiǎn)化了 C/S 模型的程序設(shè)計(jì)。 1.2.2 TCP/IP (1) TCP/IP 協(xié)議的特點(diǎn): TCP/IP(Transmission Control Protocol/Internet Protocol)是傳輸控 制協(xié)議/網(wǎng)際協(xié)議的縮寫, TCP/IP 是當(dāng)今網(wǎng)絡(luò)互聯(lián)的核
12、心協(xié)議。TCP/IP 協(xié)議的 體系結(jié)構(gòu)共有四個(gè)層次,即應(yīng)用層、傳輸層、網(wǎng)絡(luò)互聯(lián)層和網(wǎng)絡(luò)接口層。 IP 協(xié)議的作用:第一,它是網(wǎng)絡(luò)層的協(xié)議,提供互聯(lián)網(wǎng)上數(shù)據(jù)傳輸?shù)慕y(tǒng)一 格式。第二,提供不可靠的無連接的服務(wù)。第三,定義了互聯(lián)網(wǎng)上的傳輸數(shù)據(jù) 的基本單元,提供了供路由選擇的信息,沒有差錯(cuò)校驗(yàn)和處理的機(jī)制。 TCP/IP 協(xié)議具有以下特點(diǎn): 1、協(xié)議標(biāo)準(zhǔn)具有開放性,其獨(dú)立于特定的計(jì)算機(jī)硬件及操作系統(tǒng),可以免 費(fèi)使用。 2、統(tǒng)一分配網(wǎng)絡(luò)地址,使得每個(gè) TCP/IP 設(shè)備在網(wǎng)絡(luò)中都具有唯一的 IP 地 址。 3、實(shí)現(xiàn)了高層協(xié)議的標(biāo)準(zhǔn)化,能為用戶提供多種可靠的服務(wù)。 (2)TCP/IP 協(xié)議進(jìn)行傳輸數(shù)據(jù)傳輸?shù)?/p>
13、過程: 應(yīng)用程序?yàn)榱藗鬏敂?shù)據(jù)會(huì)調(diào)用 TCP,將數(shù)據(jù)和對(duì)應(yīng)的參數(shù)傳給 TCP,將 TCP 數(shù)據(jù)包封裝在 IP 包內(nèi),通過網(wǎng)絡(luò)送給目的 TCP。接收方 TCP 在接收到數(shù)據(jù)后通 知上層應(yīng)用程序,TCP 將保證接收數(shù)據(jù)的正確性。TCP 調(diào)用 IP 接口,向 TCP 提 供所有 TCP 需要的服務(wù)。 (3)端口號(hào): 有的時(shí)候,一個(gè) IP 地址不能完整的標(biāo)識(shí)一臺(tái)服務(wù)器,這是應(yīng)為一臺(tái)物理性的 計(jì)算機(jī)同時(shí)運(yùn)行著多個(gè)應(yīng)用程序,這就需要我們來區(qū)別同一臺(tái)機(jī)子上的不同的 服務(wù),所以就在傳輸層和應(yīng)用層上設(shè)置接口,就是端口。端口實(shí)際是一個(gè) 16 位 長(zhǎng)的 地址,他的范圍是 065535 之間,其中 01023 是熟知端
14、口,主要是給 提供服務(wù)的應(yīng)用程序使用,這些端口是所有應(yīng)用進(jìn)程都只道的,102465535 為一般端口,也稱動(dòng)態(tài)端口、連接端口,用來隨時(shí)分配要求通信的客戶端應(yīng)用 程序。在數(shù)據(jù)傳輸過程中,各種服務(wù)器不斷的檢測(cè)分配給他的端口,一邊發(fā)現(xiàn) 要求和他通信的客戶端。 1.2.31.2.3 SocketSocket Socket,簡(jiǎn)稱套接字,用于實(shí)現(xiàn)網(wǎng)絡(luò)上客戶和服務(wù)器之間的連接。也就是說 網(wǎng)絡(luò)上兩個(gè)或兩個(gè)以上雙工方式通信的進(jìn)程之間總有一個(gè)連接,這個(gè)連接的端 點(diǎn)成為套接字,套接字是在比較低的層次上通信的。 具體的說:一個(gè)服務(wù)器應(yīng)用程序一般偵聽一個(gè)特定的端口等待客戶端的連 接請(qǐng)求,當(dāng)一個(gè)連接請(qǐng)求到達(dá)時(shí),客戶端和服
15、武器端建立一個(gè)通信連接,在連 接過程中,客戶端被分配一個(gè)本地端口與一個(gè) Socket 建立連接,客戶端通過寫 Socket 來通知服務(wù)器,以讀 Socket 中的信息,類似的服務(wù)器也獲得一個(gè)本地 端口,它需要一個(gè)新的端口號(hào)來偵聽原始端口上的其他連接請(qǐng)求。服務(wù)器也通 過它的本地端口連接一個(gè) socket,通過讀寫和客戶端通信。 Socket 程序的工作過程: 1、建立 Socket 連接:在通信開始之前由通信雙方確認(rèn)身份,建立一條專 用的虛擬連接通道。 2、數(shù)據(jù)通信:利用虛擬連接通道傳送數(shù)據(jù)信息進(jìn)行通道。 3、關(guān)閉:通信結(jié)束時(shí),再將所建的虛擬連接拆除。 具體如下: 1 服務(wù)器 socket 2
16、監(jiān)聽 4 接收 5 讀 6 寫 7 關(guān)閉 3 客戶端 etsocket 6 寫 5 讀 7 關(guān)閉 1.31.3 開發(fā)工具開發(fā)工具 1.3.11.3.1 EclipseEclipse 集成開發(fā)環(huán)境(Integrated Development,簡(jiǎn)稱 IDE)軟件是用于程序開發(fā)環(huán) 境的應(yīng)用程序,一般包括代碼編輯器、編譯器、調(diào)試器和圖形用戶界面工具。 就是集成了代碼編寫功能、分析功能、編譯功能、debug 功能等一體化的開發(fā) 軟件套。所有具備這一特性的軟件或者軟件套(組)都可以叫做 IDE。 Eclipse 只是一個(gè)框架軟件,本身不能開發(fā)程序,但它可以安裝各種插件。 正是運(yùn)行在 Eclipse 平臺(tái)
17、上的種種插件,提供了程序開發(fā)的各種功能。同時(shí)各個(gè) 領(lǐng)域的開發(fā)人員通過開發(fā)插件,可以構(gòu)建與 Eclipse 環(huán)境無縫集成的工具。 Eclipse 是一個(gè)非常成功的開源項(xiàng)目,相對(duì)比 Borland 公司的王牌 JBuilder 來說,擁有綠色軟件、免費(fèi)、插件多、功能強(qiáng)大等優(yōu)點(diǎn),相對(duì)于現(xiàn)階段的開發(fā) 來說,使用 Eclipse 作為開發(fā)工具是最好的選擇。 Eclipse 是綠色軟件,其下載與安裝非常簡(jiǎn)單,但是如果需要使用 Eclipse 來開發(fā) J2EE,為了提高開發(fā)的效率,可以下載 MyEcilpse 插件或者 Lomboz 插 件,其中 MyEclipse 是收費(fèi)軟件,可以直接下載 exe 進(jìn)行安
18、裝,而 Lomboz 是開 源插件,其使用是完全免費(fèi)的。 1.3.21.3.2 StarUMLStarUML StarUML 是一個(gè)開源的 UML 建模工具,它遵守 GNU GPL 開源條約, StarUML 項(xiàng)目宣稱的目標(biāo)是代替大型的商業(yè) UML 工具軟件,如 IBM 的 Rational Rose,Borland 公司的 Together。它具有如下一些特點(diǎn): 可繪制多種 UML 圖:用例圖、類圖、時(shí)序圖、狀態(tài)圖、活動(dòng)圖等。 完全免費(fèi):StarUML 是一套開放源碼的軟件,不僅免費(fèi)自由下載,連代碼 都免費(fèi)開放。 可導(dǎo)出多種格式圖片:JPG、JPEG、BMP 等格式的圖片文件。 正反向工程:
19、StarUML 可以依據(jù)類圖的內(nèi)容生成 Java、C+、C#代碼,也 能夠讀取 Java、C+、C#代碼反向生成類圖。反向工程有兩個(gè)主要用途,其一 是舊有的源碼反轉(zhuǎn)成圖之后,可以構(gòu)建 UML 模型的方式繼續(xù)將新的設(shè)計(jì)添加 上去;另一項(xiàng)用途是想要解析源碼時(shí),可以通過反轉(zhuǎn)的類圖來理解,不再需要 查看一行又一行的代碼,這將節(jié)省大量的時(shí)間和精力。 導(dǎo)入 Rose 文件:StarUML 可以讀取 Rational Rose 生成的文件,讓原先 Rose 的用戶可以轉(zhuǎn)而使用免費(fèi)的 StarUML。 第第 2 2 章章 系統(tǒng)需求分析系統(tǒng)需求分析 2.12.1 基本功能需求基本功能需求 1)聊天 私聊:私聊就
20、是兩個(gè)之間聊天,即一對(duì)一。 群聊:就是多人一起聊天,即一對(duì)多。 2)好友管理 查找好友:根據(jù)好友 IP 查找好友信息 添加好友:根據(jù)查找到的好友信息,將其添加為自己的好友。 刪除好友:在好友列表中將好友刪除。 備注姓名:對(duì)好友進(jìn)行姓名備注,方便自己記憶。 3)資源共享 設(shè)置共享資源路徑,添加共享文件或目錄,啟動(dòng)文件共享。 2.22.2 性能需求性能需求 支持網(wǎng)絡(luò)通信,實(shí)現(xiàn)全方位、多功能的信息通信功能。盡量減少服務(wù)器的 開銷及數(shù)據(jù)傳送負(fù)擔(dān),提高數(shù)據(jù)利用效率和數(shù)據(jù)傳送效率,避免無效數(shù)據(jù)的傳 輸。 2.32.3 界面需求界面需求 界面設(shè)計(jì)美觀,人機(jī)交互界面友好,聊天對(duì)話框線程支持,實(shí)現(xiàn)無限制數(shù) 量用
21、戶聊天,服務(wù)器端無特殊要求。 本應(yīng)用程序需要有 4 個(gè)窗口來展示用戶需要的信息和列表,分別是系統(tǒng)主 窗口、用戶列表窗口、通信窗口和系統(tǒng)設(shè)置窗口。 根據(jù)已有的需求信息和功能分析,設(shè)計(jì)的系統(tǒng)主窗口具有用戶基本信息、 當(dāng)前時(shí)間、好友列表等顯示功能。其中,好友列表初始顯示在主窗口中。通信 窗口包括對(duì)方用戶名、對(duì)方形象、對(duì)方主機(jī)信息和 IP 信息。系統(tǒng)設(shè)置窗口主要 包括設(shè)置共享資源的路徑以及系統(tǒng)升級(jí)路徑(暫未實(shí)現(xiàn)) 、系統(tǒng)公告路徑(暫未 實(shí)現(xiàn))等。 第第 3 3 章章 系統(tǒng)設(shè)計(jì)系統(tǒng)設(shè)計(jì) 3.13.1 系統(tǒng)功能設(shè)計(jì)系統(tǒng)功能設(shè)計(jì) 1)用戶注冊(cè) 服務(wù)器收到用戶的注冊(cè)請(qǐng)求,便開始接受客戶傳遞的信息,諸如客戶的昵
22、 稱,密碼,性別,頭像,個(gè)人資料等,接受完畢后,便通過后臺(tái)數(shù)據(jù)庫連接, 然后向數(shù)據(jù)庫添加記錄。客戶收到服務(wù)器返回的信息后,便打開主登陸窗口。 2)登陸 在客戶端,用戶輸入其用戶名和密碼,然后建立與服務(wù)器的連接,告訴服 務(wù)器我要登錄,服務(wù)器收到后,開始讀取數(shù)據(jù)庫,然后與用戶輸入的信息比較, 如果成功,便打開主程序窗口。然后客戶向服務(wù)器請(qǐng)求讀取好友名單,服務(wù)器 收到該請(qǐng)求,開始讀取數(shù)據(jù)庫中的表,通過讀取好友資料,然后向客戶端發(fā)送 這些信息,客戶收到后就在主窗口顯示好友,并且建立幾個(gè)矢量(Vector)用 以存儲(chǔ)好友的呢稱,IP 號(hào)。 3)私聊 私聊就是兩個(gè)聊天。客戶端首先發(fā)送消息到服務(wù)器端,服務(wù)器
23、端根據(jù)發(fā)送 人信息和接收者信息來轉(zhuǎn)發(fā)。 4)群聊 群聊,就是多人一起聊天。過程與私聊差不多。唯一的不同就是服務(wù)器會(huì) 將信息轉(zhuǎn)發(fā)給指定的一到多個(gè)成員。 7)查找、添加、刪除好友以及備注姓名 輸入要查找的用戶 IP 號(hào),客戶端發(fā)送一個(gè)查詢信息給服務(wù)器端,如果找到 就返回用戶服務(wù)信息。打開一個(gè)用戶信息顯示界面,點(diǎn)擊 “添加為好友”菜單 項(xiàng)后可將此人加為好友。如果未找到,彈出一個(gè)信息提示框。在好友列表中打 開用戶信息顯示界面, 點(diǎn)擊“刪除該好友”菜單項(xiàng)后可將此人刪除,若點(diǎn)擊 “備注姓名”則可以對(duì)好友進(jìn)行姓名備注,分別記憶以及管理。 9)資源共享 在共享功能之前,要設(shè)置好共享資源路徑,如果設(shè)置不好,好友
24、將無法看 到這些共享的文件或網(wǎng)絡(luò)資源。還有一個(gè)重要的步驟就是添加共享文件或目錄。 最后啟動(dòng)資源共享。 3.23.2 系統(tǒng)總體設(shè)計(jì)系統(tǒng)總體設(shè)計(jì) 3.2.13.2.1 系統(tǒng)方案設(shè)計(jì)系統(tǒng)方案設(shè)計(jì) 1 服務(wù)器 socket 2 監(jiān)聽 4 接收 5 讀 6 寫 7 關(guān)閉 3 客戶端 etsocket 6 寫 5 讀 7 關(guān)閉 圖 3.1 系統(tǒng)方案設(shè)計(jì)圖 3.2.23.2.2 系統(tǒng)功能模塊圖系統(tǒng)功能模塊圖 本系統(tǒng)主要由由三個(gè)子系統(tǒng)組成:1)聊天子系統(tǒng);2)好友管理子系統(tǒng); 3)資源共享子系統(tǒng)。 聊天系統(tǒng)的功能主要有:1)私聊;2)群聊。 好友管理系統(tǒng)的功能有:1)查找好友;2)添加好友;3)刪除好友;4)
25、 備注姓名。 資源共享系統(tǒng)的功能主要是訪問好友的共享資源。 示意圖如下: 圖 3.2 系統(tǒng)功能模塊圖 3.2.33.2.3 系統(tǒng)類圖系統(tǒng)類圖 S So oc ck ke et t +send(in packet:void):void() -serverlisten:FromServerListen -in:ObjectInputStream -out:ObjectOutputStream -mainframe:MainFrame C Cl li ie en nt t T Th hr re ea ad d +run():void() -client:Client F Fr ro om ms se
26、 er rv ve er rl li is st te en n -client:Client -userinto:JChatUserInfo M Ma ai in nF Fr ra am me e +getFriends():Map() +setFriends():void() -userfriends:JChatUserclass -friends:Map J JC Ch ha at tU Us se er rI In nf fo o -id:int -account:int J JC Ch ha at tU Us se er rC Cl la as ss s 1 * 1 * 1 * 發(fā)送
27、消息和接收消息監(jiān)聽服務(wù)器是否發(fā)送數(shù)據(jù) 主顯示界面 用戶個(gè)人信息 圖 3.3 系統(tǒng)類圖 Socket:非自定義類,.Socket。 Thread: 非自定義類,java.util.Thread。 聊天系統(tǒng) 聊天好友管理資源共享 私聊群聊 查找 好友 添加 好友 刪除 好友 訪問共 享資源 備注 姓名 Client:負(fù)責(zé)具體發(fā)送和接收數(shù)據(jù)。 FromServerListen:監(jiān)聽服務(wù)器是否在發(fā)送數(shù)據(jù)。 MainFrame 系統(tǒng)的主界面(包括用戶列表等)。 QQUserInfo 包括用戶的好友列表信息等。 QQUserClass 包括用戶的個(gè)人信息,如 IP、用戶名等。 3.2.43.2.4 系統(tǒng)用
28、例圖系統(tǒng)用例圖 用戶 注冊(cè) 登錄聊天 私聊 群聊 好友管理 查找好友 添加好友 刪除好友 訪問共享資源 備注姓名 資源共享 圖 3.4 系統(tǒng)用例圖 本圖說明:用戶注冊(cè)、登錄后,可以操作以下三個(gè)功能模塊:即聊天功能,好 友管理功能以及資源共享功能。其中,聊天功能又分為私聊和群聊;好友管理 分為查找好友、添加好友、刪除好友以及備注好友姓名;資源共享主要是用戶 可以分為好友的共享資源。 3.2.53.2.5 時(shí)序圖時(shí)序圖 客戶登錄、注冊(cè)時(shí)的服務(wù)器端時(shí)序圖 服務(wù)器 客戶端監(jiān)聽池管理 數(shù)據(jù)庫操作 創(chuàng)建一個(gè)監(jiān)聽線程 獲得一個(gè)數(shù)據(jù)庫連接 返回?cái)?shù)據(jù)庫連接 操作數(shù)據(jù)庫 返回操作結(jié)果 圖 3.5 登錄、注冊(cè)時(shí)序圖
29、 本圖說明: 服務(wù)器接每次與一個(gè)客戶連接以后,就會(huì)去創(chuàng)建一個(gè)監(jiān)聽線程。 通過線程來接收客戶端發(fā)送的所有數(shù)據(jù)。如果要查詢數(shù)據(jù)庫,監(jiān)聽線程會(huì)請(qǐng)求 獲得一個(gè)數(shù)據(jù)庫連接.如果數(shù)據(jù)庫連接已經(jīng)獲得,就把連接交給 DBOperation 對(duì) 象,通過此對(duì)象可以返回給監(jiān)聽線程必要的結(jié)果。最后監(jiān)聽線程會(huì)通過 Socket 將結(jié)果返回給客戶端。 3.2.43.2.4 活動(dòng)圖活動(dòng)圖 1)用戶登錄活動(dòng)圖 登錄請(qǐng)求 填寫登錄信息 驗(yàn)證身份 創(chuàng)建拒絕登錄信息登錄失敗 創(chuàng)建登錄成功消息登錄成功 更新好友列表 圖 3.6 用戶登錄活動(dòng)圖 本圖說明:首先用戶在客戶端填寫登錄信息,提交以后服務(wù)器會(huì)對(duì)用戶名 和密碼進(jìn)行驗(yàn)證。如果不
30、正確,返回一個(gè)提示信息。如果登錄成功,就更新好 友列表登錄到主窗口頁面。 2)客戶之間的通信活動(dòng)圖 消息 消息發(fā)送失敗 發(fā)送消息 監(jiān)聽端口 監(jiān)聽端口 接受消息 編寫消息 圖 3.7 客戶端通信活動(dòng)圖 本圖說明:用戶編寫信息后,點(diǎn)擊將消息發(fā)送以后,服務(wù)器端對(duì)應(yīng)的監(jiān)聽 線程會(huì)接收到一個(gè)數(shù)據(jù)包。此包中包含接收者的信息,如果接收者開啟了 MyQQ,數(shù)據(jù)包將會(huì)轉(zhuǎn)發(fā)到接收者。否則就寫入數(shù)據(jù)庫,等接收者開啟 MyQQ 之后 再將信息發(fā)送給對(duì)應(yīng)的接收者。 3)訪問共享資源活動(dòng)圖 客戶端 設(shè)置共享資源路徑 訪問好友共享資源請(qǐng)求 獲取資源提示錯(cuò)誤 圖 3.8 訪問共享資源活動(dòng)圖 本圖說明:客戶端通過設(shè)置共享資源路
31、徑將自己的資源共享。當(dāng)需要訪問某個(gè)好 友的共享資源時(shí),服務(wù)器就會(huì)搜索好友設(shè)置好的共享資源路徑,通過路徑打開 共享網(wǎng)絡(luò)資源。若好友設(shè)置的路徑錯(cuò)誤或好友并沒有設(shè)置共享資源路徑,則提 示訪問錯(cuò)誤信息。 4)好友管理活動(dòng)圖 客戶端 填寫搜索好友請(qǐng)求服務(wù)器端 監(jiān)聽線程 查詢數(shù)據(jù)庫 顯示查找的客戶資料 返回找到用戶資料 好友管理 添加好友 刪除好友 更新好友列表監(jiān)聽線程 寫入數(shù)據(jù)庫 備注姓名 圖 3.9 好友管理活動(dòng)圖 本圖說明:用戶根據(jù)好友 IP 號(hào)查找好友,如果此 IP 存在,就將用戶信息 發(fā)送到客戶端。同時(shí)將好友關(guān)系寫入到數(shù)據(jù)庫。刪除好友時(shí),客戶向服務(wù)器發(fā) 送刪除好友請(qǐng)求。服務(wù)器接收到刪除好友請(qǐng)求以
32、后,將好友關(guān)系從數(shù)據(jù)庫中刪 除。當(dāng)客戶端向服務(wù)器發(fā)送備注姓名請(qǐng)求時(shí),服務(wù)器會(huì)獲取用戶輸入的姓名, 并將其寫入數(shù)據(jù)庫中,同時(shí)更新好友列表框中的好友姓名。 第第 4 4 章章 系統(tǒng)實(shí)現(xiàn)系統(tǒng)實(shí)現(xiàn) 4.14.1 數(shù)據(jù)庫連接實(shí)現(xiàn)數(shù)據(jù)庫連接實(shí)現(xiàn) 訪問數(shù)據(jù)庫是一個(gè)重要的環(huán)節(jié),也是比較程式化的部分。本系統(tǒng)采用 Java DB 數(shù)據(jù)庫,數(shù)據(jù)庫名稱為 db_MyQQ。它包含兩個(gè)表,一個(gè)是用戶信息表,另一 個(gè)是窗體信息表。分別如下: 表 4.1 用戶信息表(qquser) 字段名稱數(shù)據(jù)類型字段描述字段寬度 ipvarchar用戶 IP 地址50 hostvarchar用戶主機(jī)名稱50 namevarchar用戶姓名
33、50 tooltipvarchar用戶提示文本50 iconvarchar用戶頭像256 表 4.2 窗體信息表(QQMessage) 字段名稱數(shù)據(jù)類型字段描述字段寬度 xLocationintX 軸坐標(biāo)4 yLocationintY 軸坐標(biāo)4 widthint窗體高度4 heightint窗體長(zhǎng)度4 其中數(shù)據(jù)庫的開發(fā)主要步驟是: (1)下載驅(qū)動(dòng)、構(gòu)建路徑 (2)訪問數(shù)據(jù)庫的類 4.24.2 登錄、注冊(cè)功能實(shí)現(xiàn)登錄、注冊(cè)功能實(shí)現(xiàn) 1)用戶注冊(cè) 服務(wù)器收到用戶的注冊(cè)請(qǐng)求,便開始接受客戶傳遞的信息,諸如客戶的昵 稱,密碼,性別,頭像,個(gè)人資料等,接受完畢后,便通過后臺(tái)數(shù)據(jù)庫連接, 然后向數(shù)據(jù)庫添加記錄??蛻羰盏椒?wù)器返回的信息后,便打開主登錄窗口。 2)登錄 在客戶端,用戶輸入其用戶名和密碼,然后建立與服務(wù)器的連接,告訴服 務(wù)器我要登錄
溫馨提示
- 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. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 蘇教版二年級(jí)下冊(cè)數(shù)學(xué)口算練習(xí)題
- 視頻會(huì)議系統(tǒng)合同范本
- 網(wǎng)絡(luò)布線及設(shè)備采購(gòu)合同范本
- 安全協(xié)議書范本及員工責(zé)任書
- 滬科版數(shù)學(xué)九年級(jí)上冊(cè)22.3《相似三角形的性質(zhì)》聽評(píng)課記錄1
- 二零二五年度校園消毒防疫應(yīng)急預(yù)案合同
- 北師大版歷史七年級(jí)上冊(cè)第19課《北方的民族匯聚》聽課評(píng)課記錄
- 2025年子女撫養(yǎng)權(quán)變更法律援助與協(xié)議書模板
- 2025年度醫(yī)療事故快速調(diào)解專項(xiàng)協(xié)議
- 二零二五年度倉儲(chǔ)物流租賃合同電子版模板即點(diǎn)即用
- T∕CMATB 9002-2021 兒童肉類制品通用要求
- 工序勞務(wù)分包管理課件
- 暖通空調(diào)(陸亞俊編)課件
- 工藝評(píng)審報(bào)告
- 中國(guó)滑雪運(yùn)動(dòng)安全規(guī)范
- 畢業(yè)論文-基于51單片機(jī)的智能LED照明燈的設(shè)計(jì)
- 酒廠食品召回制度
- DG-TJ 08-2343-2020 大型物流建筑消防設(shè)計(jì)標(biāo)準(zhǔn)
- 中職數(shù)學(xué)基礎(chǔ)模塊上冊(cè)第一章《集合》單元檢測(cè)試習(xí)題及參考答案
- 化學(xué)魯科版必修一期末復(fù)習(xí)98頁P(yáng)PT課件
- 《農(nóng)產(chǎn)品質(zhì)量安全檢測(cè)》PPT課件
評(píng)論
0/150
提交評(píng)論