版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、中文摘要中文摘要 信息網(wǎng)絡(luò)得到飛速發(fā)展的今天,計算機和通信技術(shù)進一步發(fā)展和結(jié)合, 深深的影響了我們的生活、學(xué)習(xí)和工作方式。網(wǎng)絡(luò)聊天工具已經(jīng)成為人們?nèi)?常交流的一種重要工具,它成本低,通信速度快,方便信息交流和資料的傳 遞。目前應(yīng)用比較廣泛的聊天工具有 QQ、飛信、微信、MSN 等,這些軟件簡 單易用,深受大眾喜歡。 本論文中,首先對系統(tǒng)的開發(fā)背景進行論述,對所應(yīng)用的開發(fā)工具與關(guān)鍵 技術(shù)做了簡單的介紹。接著對系統(tǒng)的研究意義、研究現(xiàn)狀及設(shè)計目標進行了分 析,通過對系統(tǒng)需求和可行性進行分析,確定了系統(tǒng)的功能模塊,并畫出相應(yīng) 的功能結(jié)構(gòu)圖、模塊圖。最后按系統(tǒng)總體設(shè)計的結(jié)果,對系統(tǒng)進行結(jié)構(gòu)設(shè)計。 本小組
2、開發(fā)的網(wǎng)絡(luò)聊天系統(tǒng)是基于開放的 Java 應(yīng)用程序設(shè)計的,能動態(tài)、 實時地完成信息的傳遞,且具有高效的交互性,能更有效地處理客戶請求,易 于維護和更新。系統(tǒng)采用客戶機/服務(wù)器的架構(gòu)模式,由客戶端程序和服務(wù)器程 序外加服務(wù)器端用于存放客戶數(shù)據(jù)的數(shù)據(jù)庫組成,使用 Java 提供的 Socket 類 以及 Java 的多線程功能,在不同的端口上部署各類服務(wù),可以在單個程序中同 時運行多個不同進程,而客戶端通過 Socket 發(fā)送信息給服務(wù)器,從而實現(xià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è)計系統(tǒng)設(shè)計 .8 3.1 系統(tǒng)功能設(shè)計.8 3.2 系統(tǒng)總體設(shè)計.9 3.2.1 系統(tǒng)方案設(shè)計.9 3.2.2 系統(tǒng)功能模塊圖.9 3.2.3 系統(tǒng)類圖.10 3.2.4 系統(tǒng)用例圖.11 3.2.5 時序圖.12 3.2.4 活動圖.12 第第 4 4 章章
4、 系統(tǒng)實現(xiàn)系統(tǒng)實現(xiàn) .17 4.1 數(shù)據(jù)庫連接實現(xiàn).17 4.2 登錄、注冊功能實現(xiàn).18 4.3 聊天功能實現(xiàn).20 4.4 好友管理功能實現(xiàn).25 4.5 資源共享功能實現(xiàn).30 總結(jié)總結(jié) .34 參考文獻參考文獻 .35 致謝致謝 .36 第第 1 1 章章 緒論緒論 1.11.1 課題背景課題背景 隨著互聯(lián)網(wǎng)的進一步發(fā)展,網(wǎng)絡(luò)聊天工具成為人們?nèi)粘=涣鞯囊环N重要工 具,它成本低,通信速度快,方便信息交流和資料的傳遞。隨著網(wǎng)絡(luò)普及程度 的提高,人們對于通信軟件的要求越來越趨于簡單操作,同步實時,以及更簡 單的網(wǎng)絡(luò)傳輸。 本次開發(fā)的網(wǎng)絡(luò)聊天系統(tǒng)是基于開放的 Java 應(yīng)用程序設(shè)計的,能動態(tài)、
5、實 時地完成信息的傳遞,且具有高效的交互性,能更有效地處理客戶請求,易于 維護和更新。 系統(tǒng)分為兩部分:客戶端和服務(wù)器端。客戶端主要實現(xiàn)新建用戶、用戶登 錄、好友管理和消息的收發(fā)功能以及群聊功能,客戶端申請與服務(wù)器端建立連 接,當客戶端與服務(wù)器端建立連接通道后就可以像服務(wù)器端發(fā)送新建用戶信息 和登錄信息,以及好友管理、信息編輯、發(fā)送和接收的功能;服務(wù)器端主要完 成建立連接、數(shù)據(jù)庫操作和監(jiān)聽客戶三大功能,服務(wù)器端建立一個 Server Socket 的連接,不斷偵聽客戶端是否建立連接或斷開連接,如果有客戶端申請 連接就啟動線程與客戶端建立連接并按照客戶端的請求對數(shù)據(jù)庫進行操作并把 結(jié)果返回給客戶
6、端。 1.2 開發(fā)技術(shù)開發(fā)技術(shù) 1.2.1 Java Java 是一個由 Sun 公司開發(fā)的新一代高級編程語言。它可在各式各樣不同 機器、不同操作平臺的網(wǎng)絡(luò)環(huán)境中開發(fā)軟件。不論你使用的是哪種 WEB 瀏覽器, 哪種計算機,哪種操作系統(tǒng),只要 WEB 瀏覽器上面注明了“支持 Java”,并且 裝有 JAVA 控件,你就可以看到生動的主頁。Java 正在逐步成為 Internet 應(yīng)用 中最主要的開發(fā)語言,它徹底改變了軟件開發(fā)模式,帶來了自 PC 機以來又一次 革命,為飛速發(fā)展的網(wǎng)絡(luò)世界增添了新的動力。 (一)JAVA 的主要特點 Java 語言有下面一些特點:簡單、面向?qū)ο蟆⒎植际?、解釋?zhí)行、
7、安全、 體系結(jié)構(gòu)中立、可移植、高性能、多線程以及動態(tài)性。 1.簡單 Java 語言是一種面向?qū)ο蟮恼Z言,它通過提供最基本的方法來完成指定的 任務(wù)。Java 略去了運算符重載、多重繼承等模糊的概念,且通過實現(xiàn)自動垃圾 收集大大簡化了程序設(shè)計者的內(nèi)存管理工作。 2.面向?qū)ο?Java 語言的設(shè)計集中于對象及其接口,它提供了簡單的類機制以及動態(tài)的 接口模型,實現(xiàn)了模塊化和信息隱藏;而類則提供了一類對象的原型,并且通 過繼承機制,子類可以使用父類所提供的方法,實現(xiàn)了代碼的復(fù)用。 3.分布性 Java 是面向網(wǎng)絡(luò)的語言。通過它提供的類庫可以處理 TCP/IP 協(xié)議,用戶 可以通過 URL 地址在網(wǎng)絡(luò)上很
8、方便地訪問其它對象。 4.安全性 用于網(wǎng)絡(luò)、分布環(huán)境下的 Java 必須要防止病毒的入侵。Java 不支持指針, 一切對內(nèi)存的訪問都必須通過對象的實例變量來實現(xiàn),這樣就防止程序員使用 “特洛伊”木馬等欺騙手段訪問對象的私有成員,同時也避免了指針操作中容 易產(chǎn)生的錯誤。 5.體系結(jié)構(gòu)中立 Java 解釋器生成與體系結(jié)構(gòu)無關(guān)的指令,Java 程序可在任意的處理器上運 行。這些指令對應(yīng)于 Java 虛擬機中的表示,Java 解釋器得到字節(jié)碼后,對它 進行轉(zhuǎn)換,使之能夠在不同的平臺運行。 6.可移植性 與平臺無關(guān)的特性使 Java 程序可以方便地被移植到網(wǎng)絡(luò)的不同機器上。另 外,Java 編譯器是由
9、Java 語言實現(xiàn)的,Java 運行時系統(tǒng)由標準 C 實現(xiàn),這使 得 Java 系統(tǒng)本身也具有可移植性。 7.解釋執(zhí)行 Java 解釋器直接對 Java 字節(jié)碼進行解釋執(zhí)行。字節(jié)碼本身攜帶了許多編 譯時信息,使得連接過程更加簡單。 8.高性能 和其它解釋執(zhí)行的語言如 BASIC 不同,Java 字節(jié)碼的設(shè)計使之能很容易地 直接轉(zhuǎn)換成對應(yīng)于特定 CPU 的機器碼,從而得到較高的性能。 9.多線程 多線程機制使應(yīng)用程序能夠并行執(zhí)行,而且同步機制保證了對共享數(shù)據(jù)的 正確操作。通過使用多線程,程序設(shè)計者可以分別用不同的線程完成特定的行 為,而不需要采用全局的事件循環(huán)機制,這樣就很容易地實現(xiàn)網(wǎng)絡(luò)上的實時
10、交 互行為。 10.動態(tài)性 Java 的設(shè)計使它適合于一個不斷發(fā)展的環(huán)境。在類庫中可以自由地加入 新的方法和實例變量而不會影響用戶程序的執(zhí)行。并且 Java 通過接口來支持多 重繼承,使之比嚴格的類繼承具有更靈活的方式和擴展性。 (二)豐富的類庫 Java 提供了大量的類以滿足網(wǎng)絡(luò)化、多線程、面向?qū)ο?系統(tǒng)的需要。 1.語言包提供的支持包括字符串處理、多線程處理、例外處理、數(shù)學(xué)函數(shù) 處理等,可以用它簡單地實現(xiàn) Java 程序的運行平臺。 2.實用程序包提供的支持包括哈希表、堆棧、可變數(shù)組、時間和日期等。 3.輸入輸出包用統(tǒng)一的流模型來實現(xiàn)所有格式的 I/O,包括文件系統(tǒng)、 網(wǎng) 絡(luò)、輸入 4.低
11、級網(wǎng)絡(luò)包用于實現(xiàn) Socket 編程。 5.抽象圖形用戶接口包實現(xiàn)了不同平臺的計算機的圖形用戶接口部件, 包 括窗口、菜單、滾動條、對話框等,使得 Java 可以移植到不同平臺的機器。 6.網(wǎng)絡(luò)包支持 Internet 的 TCP/IP 協(xié)議,提供了與 Internet 的接口。它支 持 URL 連接,WEB 即時訪問,并且簡化了 C/S 模型的程序設(shè)計。 1.2.2 TCP/IP (1) TCP/IP 協(xié)議的特點: TCP/IP(Transmission Control Protocol/Internet Protocol)是傳輸控 制協(xié)議/網(wǎng)際協(xié)議的縮寫, TCP/IP 是當今網(wǎng)絡(luò)互聯(lián)的核
12、心協(xié)議。TCP/IP 協(xié)議的 體系結(jié)構(gòu)共有四個層次,即應(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ù) 的基本單元,提供了供路由選擇的信息,沒有差錯校驗和處理的機制。 TCP/IP 協(xié)議具有以下特點: 1、協(xié)議標準具有開放性,其獨立于特定的計算機硬件及操作系統(tǒng),可以免 費使用。 2、統(tǒng)一分配網(wǎng)絡(luò)地址,使得每個 TCP/IP 設(shè)備在網(wǎng)絡(luò)中都具有唯一的 IP 地 址。 3、實現(xiàn)了高層協(xié)議的標準化,能為用戶提供多種可靠的服務(wù)。 (2)TCP/IP 協(xié)議進行傳輸數(shù)據(jù)傳輸?shù)?/p>
13、過程: 應(yīng)用程序為了傳輸數(shù)據(jù)會調(diào)用 TCP,將數(shù)據(jù)和對應(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)端口號: 有的時候,一個 IP 地址不能完整的標識一臺服務(wù)器,這是應(yīng)為一臺物理性的 計算機同時運行著多個應(yīng)用程序,這就需要我們來區(qū)別同一臺機子上的不同的 服務(wù),所以就在傳輸層和應(yīng)用層上設(shè)置接口,就是端口。端口實際是一個 16 位 長的 地址,他的范圍是 065535 之間,其中 01023 是熟知端
14、口,主要是給 提供服務(wù)的應(yīng)用程序使用,這些端口是所有應(yīng)用進程都只道的,102465535 為一般端口,也稱動態(tài)端口、連接端口,用來隨時分配要求通信的客戶端應(yīng)用 程序。在數(shù)據(jù)傳輸過程中,各種服務(wù)器不斷的檢測分配給他的端口,一邊發(fā)現(xiàn) 要求和他通信的客戶端。 1.2.31.2.3 SocketSocket Socket,簡稱套接字,用于實現(xiàn)網(wǎng)絡(luò)上客戶和服務(wù)器之間的連接。也就是說 網(wǎng)絡(luò)上兩個或兩個以上雙工方式通信的進程之間總有一個連接,這個連接的端 點成為套接字,套接字是在比較低的層次上通信的。 具體的說:一個服務(wù)器應(yīng)用程序一般偵聽一個特定的端口等待客戶端的連 接請求,當一個連接請求到達時,客戶端和服
15、武器端建立一個通信連接,在連 接過程中,客戶端被分配一個本地端口與一個 Socket 建立連接,客戶端通過寫 Socket 來通知服務(wù)器,以讀 Socket 中的信息,類似的服務(wù)器也獲得一個本地 端口,它需要一個新的端口號來偵聽原始端口上的其他連接請求。服務(wù)器也通 過它的本地端口連接一個 socket,通過讀寫和客戶端通信。 Socket 程序的工作過程: 1、建立 Socket 連接:在通信開始之前由通信雙方確認身份,建立一條專 用的虛擬連接通道。 2、數(shù)據(jù)通信:利用虛擬連接通道傳送數(shù)據(jù)信息進行通道。 3、關(guān)閉:通信結(jié)束時,再將所建的虛擬連接拆除。 具體如下: 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,簡稱 IDE)軟件是用于程序開發(fā)環(huán) 境的應(yīng)用程序,一般包括代碼編輯器、編譯器、調(diào)試器和圖形用戶界面工具。 就是集成了代碼編寫功能、分析功能、編譯功能、debug 功能等一體化的開發(fā) 軟件套。所有具備這一特性的軟件或者軟件套(組)都可以叫做 IDE。 Eclipse 只是一個框架軟件,本身不能開發(fā)程序,但它可以安裝各種插件。 正是運行在 Eclipse 平臺
17、上的種種插件,提供了程序開發(fā)的各種功能。同時各個 領(lǐng)域的開發(fā)人員通過開發(fā)插件,可以構(gòu)建與 Eclipse 環(huán)境無縫集成的工具。 Eclipse 是一個非常成功的開源項目,相對比 Borland 公司的王牌 JBuilder 來說,擁有綠色軟件、免費、插件多、功能強大等優(yōu)點,相對于現(xiàn)階段的開發(fā) 來說,使用 Eclipse 作為開發(fā)工具是最好的選擇。 Eclipse 是綠色軟件,其下載與安裝非常簡單,但是如果需要使用 Eclipse 來開發(fā) J2EE,為了提高開發(fā)的效率,可以下載 MyEcilpse 插件或者 Lomboz 插 件,其中 MyEclipse 是收費軟件,可以直接下載 exe 進行安
18、裝,而 Lomboz 是開 源插件,其使用是完全免費的。 1.3.21.3.2 StarUMLStarUML StarUML 是一個開源的 UML 建模工具,它遵守 GNU GPL 開源條約, StarUML 項目宣稱的目標是代替大型的商業(yè) UML 工具軟件,如 IBM 的 Rational Rose,Borland 公司的 Together。它具有如下一些特點: 可繪制多種 UML 圖:用例圖、類圖、時序圖、狀態(tài)圖、活動圖等。 完全免費:StarUML 是一套開放源碼的軟件,不僅免費自由下載,連代碼 都免費開放。 可導(dǎo)出多種格式圖片:JPG、JPEG、BMP 等格式的圖片文件。 正反向工程:
19、StarUML 可以依據(jù)類圖的內(nèi)容生成 Java、C+、C#代碼,也 能夠讀取 Java、C+、C#代碼反向生成類圖。反向工程有兩個主要用途,其一 是舊有的源碼反轉(zhuǎn)成圖之后,可以構(gòu)建 UML 模型的方式繼續(xù)將新的設(shè)計添加 上去;另一項用途是想要解析源碼時,可以通過反轉(zhuǎn)的類圖來理解,不再需要 查看一行又一行的代碼,這將節(jié)省大量的時間和精力。 導(dǎo)入 Rose 文件:StarUML 可以讀取 Rational Rose 生成的文件,讓原先 Rose 的用戶可以轉(zhuǎn)而使用免費的 StarUML。 第第 2 2 章章 系統(tǒng)需求分析系統(tǒng)需求分析 2.12.1 基本功能需求基本功能需求 1)聊天 私聊:私聊就
20、是兩個之間聊天,即一對一。 群聊:就是多人一起聊天,即一對多。 2)好友管理 查找好友:根據(jù)好友 IP 查找好友信息 添加好友:根據(jù)查找到的好友信息,將其添加為自己的好友。 刪除好友:在好友列表中將好友刪除。 備注姓名:對好友進行姓名備注,方便自己記憶。 3)資源共享 設(shè)置共享資源路徑,添加共享文件或目錄,啟動文件共享。 2.22.2 性能需求性能需求 支持網(wǎng)絡(luò)通信,實現(xiàn)全方位、多功能的信息通信功能。盡量減少服務(wù)器的 開銷及數(shù)據(jù)傳送負擔,提高數(shù)據(jù)利用效率和數(shù)據(jù)傳送效率,避免無效數(shù)據(jù)的傳 輸。 2.32.3 界面需求界面需求 界面設(shè)計美觀,人機交互界面友好,聊天對話框線程支持,實現(xiàn)無限制數(shù) 量用
21、戶聊天,服務(wù)器端無特殊要求。 本應(yīng)用程序需要有 4 個窗口來展示用戶需要的信息和列表,分別是系統(tǒng)主 窗口、用戶列表窗口、通信窗口和系統(tǒng)設(shè)置窗口。 根據(jù)已有的需求信息和功能分析,設(shè)計的系統(tǒng)主窗口具有用戶基本信息、 當前時間、好友列表等顯示功能。其中,好友列表初始顯示在主窗口中。通信 窗口包括對方用戶名、對方形象、對方主機信息和 IP 信息。系統(tǒng)設(shè)置窗口主要 包括設(shè)置共享資源的路徑以及系統(tǒng)升級路徑(暫未實現(xiàn)) 、系統(tǒng)公告路徑(暫未 實現(xiàn))等。 第第 3 3 章章 系統(tǒng)設(shè)計系統(tǒng)設(shè)計 3.13.1 系統(tǒng)功能設(shè)計系統(tǒng)功能設(shè)計 1)用戶注冊 服務(wù)器收到用戶的注冊請求,便開始接受客戶傳遞的信息,諸如客戶的昵
22、 稱,密碼,性別,頭像,個人資料等,接受完畢后,便通過后臺數(shù)據(jù)庫連接, 然后向數(shù)據(jù)庫添加記錄。客戶收到服務(wù)器返回的信息后,便打開主登陸窗口。 2)登陸 在客戶端,用戶輸入其用戶名和密碼,然后建立與服務(wù)器的連接,告訴服 務(wù)器我要登錄,服務(wù)器收到后,開始讀取數(shù)據(jù)庫,然后與用戶輸入的信息比較, 如果成功,便打開主程序窗口。然后客戶向服務(wù)器請求讀取好友名單,服務(wù)器 收到該請求,開始讀取數(shù)據(jù)庫中的表,通過讀取好友資料,然后向客戶端發(fā)送 這些信息,客戶收到后就在主窗口顯示好友,并且建立幾個矢量(Vector)用 以存儲好友的呢稱,IP 號。 3)私聊 私聊就是兩個聊天??蛻舳耸紫劝l(fā)送消息到服務(wù)器端,服務(wù)器
23、端根據(jù)發(fā)送 人信息和接收者信息來轉(zhuǎn)發(fā)。 4)群聊 群聊,就是多人一起聊天。過程與私聊差不多。唯一的不同就是服務(wù)器會 將信息轉(zhuǎn)發(fā)給指定的一到多個成員。 7)查找、添加、刪除好友以及備注姓名 輸入要查找的用戶 IP 號,客戶端發(fā)送一個查詢信息給服務(wù)器端,如果找到 就返回用戶服務(wù)信息。打開一個用戶信息顯示界面,點擊 “添加為好友”菜單 項后可將此人加為好友。如果未找到,彈出一個信息提示框。在好友列表中打 開用戶信息顯示界面, 點擊“刪除該好友”菜單項后可將此人刪除,若點擊 “備注姓名”則可以對好友進行姓名備注,分別記憶以及管理。 9)資源共享 在共享功能之前,要設(shè)置好共享資源路徑,如果設(shè)置不好,好友
24、將無法看 到這些共享的文件或網(wǎng)絡(luò)資源。還有一個重要的步驟就是添加共享文件或目錄。 最后啟動資源共享。 3.23.2 系統(tǒng)總體設(shè)計系統(tǒng)總體設(shè)計 3.2.13.2.1 系統(tǒng)方案設(shè)計系統(tǒng)方案設(shè)計 1 服務(wù)器 socket 2 監(jiān)聽 4 接收 5 讀 6 寫 7 關(guān)閉 3 客戶端 etsocket 6 寫 5 讀 7 關(guān)閉 圖 3.1 系統(tǒng)方案設(shè)計圖 3.2.23.2.2 系統(tǒng)功能模塊圖系統(tǒng)功能模塊圖 本系統(tǒng)主要由由三個子系統(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ù) 主顯示界面 用戶個人信息 圖 3.3 系統(tǒng)類圖 Socket:非自定義類,.Socket。 Thread: 非自定義類,java.util.Thread。 聊天系統(tǒng) 聊天好友管理資源共享 私聊群聊 查找 好友 添加 好友 刪除 好友 訪問共 享資源 備注 姓名 Client:負責(zé)具體發(fā)送和接收數(shù)據(jù)。 FromServerListen:監(jiān)聽服務(wù)器是否在發(fā)送數(shù)據(jù)。 MainFrame 系統(tǒng)的主界面(包括用戶列表等)。 QQUserInfo 包括用戶的好友列表信息等。 QQUserClass 包括用戶的個人信息,如 IP、用戶名等。 3.2.43.2.4 系統(tǒng)用
28、例圖系統(tǒng)用例圖 用戶 注冊 登錄聊天 私聊 群聊 好友管理 查找好友 添加好友 刪除好友 訪問共享資源 備注姓名 資源共享 圖 3.4 系統(tǒng)用例圖 本圖說明:用戶注冊、登錄后,可以操作以下三個功能模塊:即聊天功能,好 友管理功能以及資源共享功能。其中,聊天功能又分為私聊和群聊;好友管理 分為查找好友、添加好友、刪除好友以及備注好友姓名;資源共享主要是用戶 可以分為好友的共享資源。 3.2.53.2.5 時序圖時序圖 客戶登錄、注冊時的服務(wù)器端時序圖 服務(wù)器 客戶端監(jiān)聽池管理 數(shù)據(jù)庫操作 創(chuàng)建一個監(jiān)聽線程 獲得一個數(shù)據(jù)庫連接 返回數(shù)據(jù)庫連接 操作數(shù)據(jù)庫 返回操作結(jié)果 圖 3.5 登錄、注冊時序圖
29、 本圖說明: 服務(wù)器接每次與一個客戶連接以后,就會去創(chuàng)建一個監(jiān)聽線程。 通過線程來接收客戶端發(fā)送的所有數(shù)據(jù)。如果要查詢數(shù)據(jù)庫,監(jiān)聽線程會請求 獲得一個數(shù)據(jù)庫連接.如果數(shù)據(jù)庫連接已經(jīng)獲得,就把連接交給 DBOperation 對 象,通過此對象可以返回給監(jiān)聽線程必要的結(jié)果。最后監(jiān)聽線程會通過 Socket 將結(jié)果返回給客戶端。 3.2.43.2.4 活動圖活動圖 1)用戶登錄活動圖 登錄請求 填寫登錄信息 驗證身份 創(chuàng)建拒絕登錄信息登錄失敗 創(chuàng)建登錄成功消息登錄成功 更新好友列表 圖 3.6 用戶登錄活動圖 本圖說明:首先用戶在客戶端填寫登錄信息,提交以后服務(wù)器會對用戶名 和密碼進行驗證。如果不
30、正確,返回一個提示信息。如果登錄成功,就更新好 友列表登錄到主窗口頁面。 2)客戶之間的通信活動圖 消息 消息發(fā)送失敗 發(fā)送消息 監(jiān)聽端口 監(jiān)聽端口 接受消息 編寫消息 圖 3.7 客戶端通信活動圖 本圖說明:用戶編寫信息后,點擊將消息發(fā)送以后,服務(wù)器端對應(yīng)的監(jiān)聽 線程會接收到一個數(shù)據(jù)包。此包中包含接收者的信息,如果接收者開啟了 MyQQ,數(shù)據(jù)包將會轉(zhuǎn)發(fā)到接收者。否則就寫入數(shù)據(jù)庫,等接收者開啟 MyQQ 之后 再將信息發(fā)送給對應(yīng)的接收者。 3)訪問共享資源活動圖 客戶端 設(shè)置共享資源路徑 訪問好友共享資源請求 獲取資源提示錯誤 圖 3.8 訪問共享資源活動圖 本圖說明:客戶端通過設(shè)置共享資源路
31、徑將自己的資源共享。當需要訪問某個好 友的共享資源時,服務(wù)器就會搜索好友設(shè)置好的共享資源路徑,通過路徑打開 共享網(wǎng)絡(luò)資源。若好友設(shè)置的路徑錯誤或好友并沒有設(shè)置共享資源路徑,則提 示訪問錯誤信息。 4)好友管理活動圖 客戶端 填寫搜索好友請求服務(wù)器端 監(jiān)聽線程 查詢數(shù)據(jù)庫 顯示查找的客戶資料 返回找到用戶資料 好友管理 添加好友 刪除好友 更新好友列表監(jiān)聽線程 寫入數(shù)據(jù)庫 備注姓名 圖 3.9 好友管理活動圖 本圖說明:用戶根據(jù)好友 IP 號查找好友,如果此 IP 存在,就將用戶信息 發(fā)送到客戶端。同時將好友關(guān)系寫入到數(shù)據(jù)庫。刪除好友時,客戶向服務(wù)器發(fā) 送刪除好友請求。服務(wù)器接收到刪除好友請求以
32、后,將好友關(guān)系從數(shù)據(jù)庫中刪 除。當客戶端向服務(wù)器發(fā)送備注姓名請求時,服務(wù)器會獲取用戶輸入的姓名, 并將其寫入數(shù)據(jù)庫中,同時更新好友列表框中的好友姓名。 第第 4 4 章章 系統(tǒng)實現(xiàn)系統(tǒng)實現(xiàn) 4.14.1 數(shù)據(jù)庫連接實現(xiàn)數(shù)據(jù)庫連接實現(xiàn) 訪問數(shù)據(jù)庫是一個重要的環(huán)節(jié),也是比較程式化的部分。本系統(tǒng)采用 Java DB 數(shù)據(jù)庫,數(shù)據(jù)庫名稱為 db_MyQQ。它包含兩個表,一個是用戶信息表,另一 個是窗體信息表。分別如下: 表 4.1 用戶信息表(qquser) 字段名稱數(shù)據(jù)類型字段描述字段寬度 ipvarchar用戶 IP 地址50 hostvarchar用戶主機名稱50 namevarchar用戶姓名
33、50 tooltipvarchar用戶提示文本50 iconvarchar用戶頭像256 表 4.2 窗體信息表(QQMessage) 字段名稱數(shù)據(jù)類型字段描述字段寬度 xLocationintX 軸坐標4 yLocationintY 軸坐標4 widthint窗體高度4 heightint窗體長度4 其中數(shù)據(jù)庫的開發(fā)主要步驟是: (1)下載驅(qū)動、構(gòu)建路徑 (2)訪問數(shù)據(jù)庫的類 4.24.2 登錄、注冊功能實現(xiàn)登錄、注冊功能實現(xiàn) 1)用戶注冊 服務(wù)器收到用戶的注冊請求,便開始接受客戶傳遞的信息,諸如客戶的昵 稱,密碼,性別,頭像,個人資料等,接受完畢后,便通過后臺數(shù)據(jù)庫連接, 然后向數(shù)據(jù)庫添加記錄??蛻羰盏椒?wù)器返回的信息后,便打開主登錄窗口。 2)登錄 在客戶端,用戶輸入其用戶名和密碼,然后建立與服務(wù)器的連接,告訴服 務(wù)器我要登錄
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 環(huán)境暴露生物標志物與伴隨健康監(jiān)測
- 產(chǎn)品設(shè)計經(jīng)理面試題目與解答指南
- 特殊職業(yè)人群糖尿病口腔健康風(fēng)險分析
- 特殊群體(殘障)患者的知情同意替代方案與隱私
- 中國平安保險產(chǎn)品經(jīng)理面試題及答案
- 花灑、淋浴頭項目可行性研究報告(總投資10000萬元)(49畝)
- 特殊人群健康促進資源共享策略
- 深度解析(2026)GBT 18491.5-2010信息技術(shù) 軟件測量 功能規(guī)模測量 第5部分:功能規(guī)模測量的功能域確定
- 鄉(xiāng)鎮(zhèn)助理醫(yī)師課件
- 物流管理崗倉儲與配送面試問題解析
- 2022室外排水設(shè)施設(shè)計與施工-鋼筋混凝土化糞池22S702
- 工程維保及售后服務(wù)方案
- GB/Z 43482-2023液壓傳動軟管和軟管總成收集流體樣本分析清潔度的方法
- 急性中毒的處理與搶救
- 淤泥消納施工方案
- 附表:醫(yī)療美容主診醫(yī)師申請表
- 跌落式熔斷器熔絲故障原因分析
- 2023年全市中職學(xué)校學(xué)生職業(yè)技能大賽
- 黑布林英語閱讀初一年級16《柳林風(fēng)聲》譯文和答案
- 倉庫安全管理檢查表
- 嶺南版美術(shù)科五年級上冊期末素質(zhì)檢測試題附答案
評論
0/150
提交評論