基于Java的網(wǎng)絡聊天工具的項目規(guī)劃設計_第1頁
基于Java的網(wǎng)絡聊天工具的項目規(guī)劃設計_第2頁
基于Java的網(wǎng)絡聊天工具的項目規(guī)劃設計_第3頁
基于Java的網(wǎng)絡聊天工具的項目規(guī)劃設計_第4頁
基于Java的網(wǎng)絡聊天工具的項目規(guī)劃設計_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、中文摘要中文摘要 信息網(wǎng)絡得到飛速發(fā)展的今天,計算機和通信技術進一步發(fā)展和結(jié)合, 深深的影響了我們的生活、學習和工作方式。網(wǎng)絡聊天工具已經(jīng)成為人們?nèi)?常交流的一種重要工具,它成本低,通信速度快,方便信息交流和資料的傳 遞。目前應用比較廣泛的聊天工具有 QQ、飛信、微信、MSN 等,這些軟件簡 單易用,深受大眾喜歡。 本論文中,首先對系統(tǒng)的開發(fā)背景進行論述,對所應用的開發(fā)工具與關鍵 技術做了簡單的介紹。接著對系統(tǒng)的研究意義、研究現(xiàn)狀及設計目標進行了分 析,通過對系統(tǒng)需求和可行性進行分析,確定了系統(tǒng)的功能模塊,并畫出相應 的功能結(jié)構(gòu)圖、模塊圖。最后按系統(tǒng)總體設計的結(jié)果,對系統(tǒng)進行結(jié)構(gòu)設計。 本小組

2、開發(fā)的網(wǎng)絡聊天系統(tǒng)是基于開放的 Java 應用程序設計的,能動態(tài)、 實時地完成信息的傳遞,且具有高效的交互性,能更有效地處理客戶請求,易 于維護和更新。系統(tǒng)采用客戶機/服務器的架構(gòu)模式,由客戶端程序和服務器程 序外加服務器端用于存放客戶數(shù)據(jù)的數(shù)據(jù)庫組成,使用 Java 提供的 Socket 類 以及 Java 的多線程功能,在不同的端口上部署各類服務,可以在單個程序中同 時運行多個不同進程,而客戶端通過 Socket 發(fā)送信息給服務器,從而實現(xiàn)多點 對多點的聊天。 關鍵詞:關鍵詞:Java,交互性,Socket 類,多線程 目錄目錄 第第 1 1 章章 緒論緒論 .1 1.1 課題背景.1 1

3、.2 開發(fā)技術.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)設計系統(tǒng)設計 .8 3.1 系統(tǒng)功能設計.8 3.2 系統(tǒng)總體設計.9 3.2.1 系統(tǒng)方案設計.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)絡聊天工具成為人們?nèi)粘=涣鞯囊环N重要工 具,它成本低,通信速度快,方便信息交流和資料的傳遞。隨著網(wǎng)絡普及程度 的提高,人們對于通信軟件的要求越來越趨于簡單操作,同步實時,以及更簡 單的網(wǎng)絡傳輸。 本次開發(fā)的網(wǎng)絡聊天系統(tǒng)是基于開放的 Java 應用程序設計的,能動態(tài)、

5、實 時地完成信息的傳遞,且具有高效的交互性,能更有效地處理客戶請求,易于 維護和更新。 系統(tǒng)分為兩部分:客戶端和服務器端??蛻舳酥饕獙崿F(xiàn)新建用戶、用戶登 錄、好友管理和消息的收發(fā)功能以及群聊功能,客戶端申請與服務器端建立連 接,當客戶端與服務器端建立連接通道后就可以像服務器端發(fā)送新建用戶信息 和登錄信息,以及好友管理、信息編輯、發(fā)送和接收的功能;服務器端主要完 成建立連接、數(shù)據(jù)庫操作和監(jiān)聽客戶三大功能,服務器端建立一個 Server Socket 的連接,不斷偵聽客戶端是否建立連接或斷開連接,如果有客戶端申請 連接就啟動線程與客戶端建立連接并按照客戶端的請求對數(shù)據(jù)庫進行操作并把 結(jié)果返回給客戶

6、端。 1.2 開發(fā)技術開發(fā)技術 1.2.1 Java Java 是一個由 Sun 公司開發(fā)的新一代高級編程語言。它可在各式各樣不同 機器、不同操作平臺的網(wǎng)絡環(huán)境中開發(fā)軟件。不論你使用的是哪種 WEB 瀏覽器, 哪種計算機,哪種操作系統(tǒng),只要 WEB 瀏覽器上面注明了“支持 Java”,并且 裝有 JAVA 控件,你就可以看到生動的主頁。Java 正在逐步成為 Internet 應用 中最主要的開發(fā)語言,它徹底改變了軟件開發(fā)模式,帶來了自 PC 機以來又一次 革命,為飛速發(fā)展的網(wǎng)絡世界增添了新的動力。 (一)JAVA 的主要特點 Java 語言有下面一些特點:簡單、面向?qū)ο?、分布式、解釋?zhí)行、

7、安全、 體系結(jié)構(gòu)中立、可移植、高性能、多線程以及動態(tài)性。 1.簡單 Java 語言是一種面向?qū)ο蟮恼Z言,它通過提供最基本的方法來完成指定的 任務。Java 略去了運算符重載、多重繼承等模糊的概念,且通過實現(xiàn)自動垃圾 收集大大簡化了程序設計者的內(nèi)存管理工作。 2.面向?qū)ο?Java 語言的設計集中于對象及其接口,它提供了簡單的類機制以及動態(tài)的 接口模型,實現(xiàn)了模塊化和信息隱藏;而類則提供了一類對象的原型,并且通 過繼承機制,子類可以使用父類所提供的方法,實現(xiàn)了代碼的復用。 3.分布性 Java 是面向網(wǎng)絡的語言。通過它提供的類庫可以處理 TCP/IP 協(xié)議,用戶 可以通過 URL 地址在網(wǎng)絡上很

8、方便地訪問其它對象。 4.安全性 用于網(wǎng)絡、分布環(huán)境下的 Java 必須要防止病毒的入侵。Java 不支持指針, 一切對內(nèi)存的訪問都必須通過對象的實例變量來實現(xiàn),這樣就防止程序員使用 “特洛伊”木馬等欺騙手段訪問對象的私有成員,同時也避免了指針操作中容 易產(chǎn)生的錯誤。 5.體系結(jié)構(gòu)中立 Java 解釋器生成與體系結(jié)構(gòu)無關的指令,Java 程序可在任意的處理器上運 行。這些指令對應于 Java 虛擬機中的表示,Java 解釋器得到字節(jié)碼后,對它 進行轉(zhuǎn)換,使之能夠在不同的平臺運行。 6.可移植性 與平臺無關的特性使 Java 程序可以方便地被移植到網(wǎng)絡的不同機器上。另 外,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é)碼的設計使之能很容易地 直接轉(zhuǎn)換成對應于特定 CPU 的機器碼,從而得到較高的性能。 9.多線程 多線程機制使應用程序能夠并行執(zhí)行,而且同步機制保證了對共享數(shù)據(jù)的 正確操作。通過使用多線程,程序設計者可以分別用不同的線程完成特定的行 為,而不需要采用全局的事件循環(huán)機制,這樣就很容易地實現(xiàn)網(wǎng)絡上的實時

10、交 互行為。 10.動態(tài)性 Java 的設計使它適合于一個不斷發(fā)展的環(huán)境。在類庫中可以自由地加入 新的方法和實例變量而不會影響用戶程序的執(zhí)行。并且 Java 通過接口來支持多 重繼承,使之比嚴格的類繼承具有更靈活的方式和擴展性。 (二)豐富的類庫 Java 提供了大量的類以滿足網(wǎng)絡化、多線程、面向?qū)ο?系統(tǒng)的需要。 1.語言包提供的支持包括字符串處理、多線程處理、例外處理、數(shù)學函數(shù) 處理等,可以用它簡單地實現(xiàn) Java 程序的運行平臺。 2.實用程序包提供的支持包括哈希表、堆棧、可變數(shù)組、時間和日期等。 3.輸入輸出包用統(tǒng)一的流模型來實現(xiàn)所有格式的 I/O,包括文件系統(tǒng)、 網(wǎng) 絡、輸入 4.低

11、級網(wǎng)絡包用于實現(xiàn) Socket 編程。 5.抽象圖形用戶接口包實現(xiàn)了不同平臺的計算機的圖形用戶接口部件, 包 括窗口、菜單、滾動條、對話框等,使得 Java 可以移植到不同平臺的機器。 6.網(wǎng)絡包支持 Internet 的 TCP/IP 協(xié)議,提供了與 Internet 的接口。它支 持 URL 連接,WEB 即時訪問,并且簡化了 C/S 模型的程序設計。 1.2.2 TCP/IP (1) TCP/IP 協(xié)議的特點: TCP/IP(Transmission Control Protocol/Internet Protocol)是傳輸控 制協(xié)議/網(wǎng)際協(xié)議的縮寫, TCP/IP 是當今網(wǎng)絡互聯(lián)的核

12、心協(xié)議。TCP/IP 協(xié)議的 體系結(jié)構(gòu)共有四個層次,即應用層、傳輸層、網(wǎng)絡互聯(lián)層和網(wǎng)絡接口層。 IP 協(xié)議的作用:第一,它是網(wǎng)絡層的協(xié)議,提供互聯(lián)網(wǎng)上數(shù)據(jù)傳輸?shù)慕y(tǒng)一 格式。第二,提供不可靠的無連接的服務。第三,定義了互聯(lián)網(wǎng)上的傳輸數(shù)據(jù) 的基本單元,提供了供路由選擇的信息,沒有差錯校驗和處理的機制。 TCP/IP 協(xié)議具有以下特點: 1、協(xié)議標準具有開放性,其獨立于特定的計算機硬件及操作系統(tǒng),可以免 費使用。 2、統(tǒng)一分配網(wǎng)絡地址,使得每個 TCP/IP 設備在網(wǎng)絡中都具有唯一的 IP 地 址。 3、實現(xiàn)了高層協(xié)議的標準化,能為用戶提供多種可靠的服務。 (2)TCP/IP 協(xié)議進行傳輸數(shù)據(jù)傳輸?shù)?/p>

13、過程: 應用程序為了傳輸數(shù)據(jù)會調(diào)用 TCP,將數(shù)據(jù)和對應的參數(shù)傳給 TCP,將 TCP 數(shù)據(jù)包封裝在 IP 包內(nèi),通過網(wǎng)絡送給目的 TCP。接收方 TCP 在接收到數(shù)據(jù)后通 知上層應用程序,TCP 將保證接收數(shù)據(jù)的正確性。TCP 調(diào)用 IP 接口,向 TCP 提 供所有 TCP 需要的服務。 (3)端口號: 有的時候,一個 IP 地址不能完整的標識一臺服務器,這是應為一臺物理性的 計算機同時運行著多個應用程序,這就需要我們來區(qū)別同一臺機子上的不同的 服務,所以就在傳輸層和應用層上設置接口,就是端口。端口實際是一個 16 位 長的 地址,他的范圍是 065535 之間,其中 01023 是熟知端

14、口,主要是給 提供服務的應用程序使用,這些端口是所有應用進程都只道的,102465535 為一般端口,也稱動態(tài)端口、連接端口,用來隨時分配要求通信的客戶端應用 程序。在數(shù)據(jù)傳輸過程中,各種服務器不斷的檢測分配給他的端口,一邊發(fā)現(xiàn) 要求和他通信的客戶端。 1.2.31.2.3 SocketSocket Socket,簡稱套接字,用于實現(xiàn)網(wǎng)絡上客戶和服務器之間的連接。也就是說 網(wǎng)絡上兩個或兩個以上雙工方式通信的進程之間總有一個連接,這個連接的端 點成為套接字,套接字是在比較低的層次上通信的。 具體的說:一個服務器應用程序一般偵聽一個特定的端口等待客戶端的連 接請求,當一個連接請求到達時,客戶端和服

15、武器端建立一個通信連接,在連 接過程中,客戶端被分配一個本地端口與一個 Socket 建立連接,客戶端通過寫 Socket 來通知服務器,以讀 Socket 中的信息,類似的服務器也獲得一個本地 端口,它需要一個新的端口號來偵聽原始端口上的其他連接請求。服務器也通 過它的本地端口連接一個 socket,通過讀寫和客戶端通信。 Socket 程序的工作過程: 1、建立 Socket 連接:在通信開始之前由通信雙方確認身份,建立一條專 用的虛擬連接通道。 2、數(shù)據(jù)通信:利用虛擬連接通道傳送數(shù)據(jù)信息進行通道。 3、關閉:通信結(jié)束時,再將所建的虛擬連接拆除。 具體如下: 1 服務器 socket 2

16、監(jiān)聽 4 接收 5 讀 6 寫 7 關閉 3 客戶端 etsocket 6 寫 5 讀 7 關閉 1.31.3 開發(fā)工具開發(fā)工具 1.3.11.3.1 EclipseEclipse 集成開發(fā)環(huán)境(Integrated Development,簡稱 IDE)軟件是用于程序開發(fā)環(huán) 境的應用程序,一般包括代碼編輯器、編譯器、調(diào)試器和圖形用戶界面工具。 就是集成了代碼編寫功能、分析功能、編譯功能、debug 功能等一體化的開發(fā) 軟件套。所有具備這一特性的軟件或者軟件套(組)都可以叫做 IDE。 Eclipse 只是一個框架軟件,本身不能開發(fā)程序,但它可以安裝各種插件。 正是運行在 Eclipse 平臺

17、上的種種插件,提供了程序開發(fā)的各種功能。同時各個 領域的開發(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 是一套開放源碼的軟件,不僅免費自由下載,連代碼 都免費開放。 可導出多種格式圖片:JPG、JPEG、BMP 等格式的圖片文件。 正反向工程:

19、StarUML 可以依據(jù)類圖的內(nèi)容生成 Java、C+、C#代碼,也 能夠讀取 Java、C+、C#代碼反向生成類圖。反向工程有兩個主要用途,其一 是舊有的源碼反轉(zhuǎn)成圖之后,可以構(gòu)建 UML 模型的方式繼續(xù)將新的設計添加 上去;另一項用途是想要解析源碼時,可以通過反轉(zhuǎn)的類圖來理解,不再需要 查看一行又一行的代碼,這將節(jié)省大量的時間和精力。 導入 Rose 文件:StarUML 可以讀取 Rational Rose 生成的文件,讓原先 Rose 的用戶可以轉(zhuǎn)而使用免費的 StarUML。 第第 2 2 章章 系統(tǒng)需求分析系統(tǒng)需求分析 2.12.1 基本功能需求基本功能需求 1)聊天 私聊:私聊就

20、是兩個之間聊天,即一對一。 群聊:就是多人一起聊天,即一對多。 2)好友管理 查找好友:根據(jù)好友 IP 查找好友信息 添加好友:根據(jù)查找到的好友信息,將其添加為自己的好友。 刪除好友:在好友列表中將好友刪除。 備注姓名:對好友進行姓名備注,方便自己記憶。 3)資源共享 設置共享資源路徑,添加共享文件或目錄,啟動文件共享。 2.22.2 性能需求性能需求 支持網(wǎng)絡通信,實現(xiàn)全方位、多功能的信息通信功能。盡量減少服務器的 開銷及數(shù)據(jù)傳送負擔,提高數(shù)據(jù)利用效率和數(shù)據(jù)傳送效率,避免無效數(shù)據(jù)的傳 輸。 2.32.3 界面需求界面需求 界面設計美觀,人機交互界面友好,聊天對話框線程支持,實現(xiàn)無限制數(shù) 量用

21、戶聊天,服務器端無特殊要求。 本應用程序需要有 4 個窗口來展示用戶需要的信息和列表,分別是系統(tǒng)主 窗口、用戶列表窗口、通信窗口和系統(tǒng)設置窗口。 根據(jù)已有的需求信息和功能分析,設計的系統(tǒng)主窗口具有用戶基本信息、 當前時間、好友列表等顯示功能。其中,好友列表初始顯示在主窗口中。通信 窗口包括對方用戶名、對方形象、對方主機信息和 IP 信息。系統(tǒng)設置窗口主要 包括設置共享資源的路徑以及系統(tǒng)升級路徑(暫未實現(xiàn)) 、系統(tǒng)公告路徑(暫未 實現(xiàn))等。 第第 3 3 章章 系統(tǒng)設計系統(tǒng)設計 3.13.1 系統(tǒng)功能設計系統(tǒng)功能設計 1)用戶注冊 服務器收到用戶的注冊請求,便開始接受客戶傳遞的信息,諸如客戶的昵

22、 稱,密碼,性別,頭像,個人資料等,接受完畢后,便通過后臺數(shù)據(jù)庫連接, 然后向數(shù)據(jù)庫添加記錄??蛻羰盏椒掌鞣祷氐男畔⒑螅愦蜷_主登陸窗口。 2)登陸 在客戶端,用戶輸入其用戶名和密碼,然后建立與服務器的連接,告訴服 務器我要登錄,服務器收到后,開始讀取數(shù)據(jù)庫,然后與用戶輸入的信息比較, 如果成功,便打開主程序窗口。然后客戶向服務器請求讀取好友名單,服務器 收到該請求,開始讀取數(shù)據(jù)庫中的表,通過讀取好友資料,然后向客戶端發(fā)送 這些信息,客戶收到后就在主窗口顯示好友,并且建立幾個矢量(Vector)用 以存儲好友的呢稱,IP 號。 3)私聊 私聊就是兩個聊天??蛻舳耸紫劝l(fā)送消息到服務器端,服務器

23、端根據(jù)發(fā)送 人信息和接收者信息來轉(zhuǎn)發(fā)。 4)群聊 群聊,就是多人一起聊天。過程與私聊差不多。唯一的不同就是服務器會 將信息轉(zhuǎn)發(fā)給指定的一到多個成員。 7)查找、添加、刪除好友以及備注姓名 輸入要查找的用戶 IP 號,客戶端發(fā)送一個查詢信息給服務器端,如果找到 就返回用戶服務信息。打開一個用戶信息顯示界面,點擊 “添加為好友”菜單 項后可將此人加為好友。如果未找到,彈出一個信息提示框。在好友列表中打 開用戶信息顯示界面, 點擊“刪除該好友”菜單項后可將此人刪除,若點擊 “備注姓名”則可以對好友進行姓名備注,分別記憶以及管理。 9)資源共享 在共享功能之前,要設置好共享資源路徑,如果設置不好,好友

24、將無法看 到這些共享的文件或網(wǎng)絡資源。還有一個重要的步驟就是添加共享文件或目錄。 最后啟動資源共享。 3.23.2 系統(tǒng)總體設計系統(tǒng)總體設計 3.2.13.2.1 系統(tǒng)方案設計系統(tǒng)方案設計 1 服務器 socket 2 監(jiān)聽 4 接收 5 讀 6 寫 7 關閉 3 客戶端 etsocket 6 寫 5 讀 7 關閉 圖 3.1 系統(tǒng)方案設計圖 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)聽服務器是否發(fā)送數(shù)據(jù) 主顯示界面 用戶個人信息 圖 3.3 系統(tǒng)類圖 Socket:非自定義類,.Socket。 Thread: 非自定義類,java.util.Thread。 聊天系統(tǒng) 聊天好友管理資源共享 私聊群聊 查找 好友 添加 好友 刪除 好友 訪問共 享資源 備注 姓名 Client:負責具體發(fā)送和接收數(shù)據(jù)。 FromServerListen:監(jiān)聽服務器是否在發(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 時序圖時序圖 客戶登錄、注冊時的服務器端時序圖 服務器 客戶端監(jiān)聽池管理 數(shù)據(jù)庫操作 創(chuàng)建一個監(jiān)聽線程 獲得一個數(shù)據(jù)庫連接 返回數(shù)據(jù)庫連接 操作數(shù)據(jù)庫 返回操作結(jié)果 圖 3.5 登錄、注冊時序圖

29、 本圖說明: 服務器接每次與一個客戶連接以后,就會去創(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 用戶登錄活動圖 本圖說明:首先用戶在客戶端填寫登錄信息,提交以后服務器會對用戶名 和密碼進行驗證。如果不

30、正確,返回一個提示信息。如果登錄成功,就更新好 友列表登錄到主窗口頁面。 2)客戶之間的通信活動圖 消息 消息發(fā)送失敗 發(fā)送消息 監(jiān)聽端口 監(jiān)聽端口 接受消息 編寫消息 圖 3.7 客戶端通信活動圖 本圖說明:用戶編寫信息后,點擊將消息發(fā)送以后,服務器端對應的監(jiān)聽 線程會接收到一個數(shù)據(jù)包。此包中包含接收者的信息,如果接收者開啟了 MyQQ,數(shù)據(jù)包將會轉(zhuǎn)發(fā)到接收者。否則就寫入數(shù)據(jù)庫,等接收者開啟 MyQQ 之后 再將信息發(fā)送給對應的接收者。 3)訪問共享資源活動圖 客戶端 設置共享資源路徑 訪問好友共享資源請求 獲取資源提示錯誤 圖 3.8 訪問共享資源活動圖 本圖說明:客戶端通過設置共享資源路

31、徑將自己的資源共享。當需要訪問某個好 友的共享資源時,服務器就會搜索好友設置好的共享資源路徑,通過路徑打開 共享網(wǎng)絡資源。若好友設置的路徑錯誤或好友并沒有設置共享資源路徑,則提 示訪問錯誤信息。 4)好友管理活動圖 客戶端 填寫搜索好友請求服務器端 監(jiān)聽線程 查詢數(shù)據(jù)庫 顯示查找的客戶資料 返回找到用戶資料 好友管理 添加好友 刪除好友 更新好友列表監(jiān)聽線程 寫入數(shù)據(jù)庫 備注姓名 圖 3.9 好友管理活動圖 本圖說明:用戶根據(jù)好友 IP 號查找好友,如果此 IP 存在,就將用戶信息 發(fā)送到客戶端。同時將好友關系寫入到數(shù)據(jù)庫。刪除好友時,客戶向服務器發(fā) 送刪除好友請求。服務器接收到刪除好友請求以

32、后,將好友關系從數(shù)據(jù)庫中刪 除。當客戶端向服務器發(fā)送備注姓名請求時,服務器會獲取用戶輸入的姓名, 并將其寫入數(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)用戶注冊 服務器收到用戶的注冊請求,便開始接受客戶傳遞的信息,諸如客戶的昵 稱,密碼,性別,頭像,個人資料等,接受完畢后,便通過后臺數(shù)據(jù)庫連接, 然后向數(shù)據(jù)庫添加記錄??蛻羰盏椒掌鞣祷氐男畔⒑?,便打開主登錄窗口。 2)登錄 在客戶端,用戶輸入其用戶名和密碼,然后建立與服務器的連接,告訴服 務器我要登錄

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論