簡單聊天系統(tǒng)的設(shè)計與實現(xiàn).doc_第1頁
簡單聊天系統(tǒng)的設(shè)計與實現(xiàn).doc_第2頁
簡單聊天系統(tǒng)的設(shè)計與實現(xiàn).doc_第3頁
簡單聊天系統(tǒng)的設(shè)計與實現(xiàn).doc_第4頁
簡單聊天系統(tǒng)的設(shè)計與實現(xiàn).doc_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

JISHOU UNIVERSITY 專業(yè)課課程論文 題題 目 目 簡單聊天系統(tǒng)的設(shè)計與實現(xiàn) 作作 者 者 學(xué)學(xué) 號 號 所屬學(xué)院 所屬學(xué)院 信息科學(xué)與工程學(xué)院 專業(yè)班級 專業(yè)班級 總總 評評 分 分 完成時間 完成時間 吉首大學(xué)信息科學(xué)與工程學(xué)院吉首大學(xué)信息科學(xué)與工程學(xué)院 簡單聊天系統(tǒng)的設(shè)計與實現(xiàn) 吉首大學(xué)信息科學(xué)與工程學(xué)院 湖南 吉首 416000 摘 要 網(wǎng)絡(luò)聊天室通常直稱聊天室 是一種人們可以在線交談的網(wǎng)絡(luò)論壇 在同一聊 天室的人們通過廣播消息進(jìn)行實時交談 在當(dāng)今信息時代 越來越多的聊天工具被 應(yīng)用 java 語言是當(dāng)今流行的網(wǎng)絡(luò)編程語言 它具有面向?qū)ο?與平臺無關(guān) 安全 多線程等特點 使用 java 語言不僅可以實現(xiàn)大型企業(yè)級的分布式應(yīng)用系統(tǒng) 還能夠 為小型的的 嵌入式設(shè)備進(jìn)行應(yīng)用程序的開發(fā) 面向?qū)ο蟮拈_發(fā)是當(dāng)今世界最流行 的開發(fā)方法 它不僅具有更貼近自然地語義 而且有利于軟件的維護(hù)和繼承 鍛煉 我們熟練地應(yīng)用面 向?qū)ο蟮乃枷牒驮O(shè)計方法解決實際問題的能力 本程序正是用 java 語言實現(xiàn)了簡單聊天功能 它是圖形界面 線程 流與 文件系統(tǒng)等技術(shù)的綜 合應(yīng)用 其界面主要采用了 java awt 包 java swing 包等 關(guān)鍵詞 網(wǎng)絡(luò)聊天室 java 面向?qū)ο?通信機制 圖形界面 目 錄 第一章 引言 1 第二章 關(guān)鍵技術(shù) 2 2 1 開發(fā)技術(shù) 2 2 1 1 什么是 Java 2 2 1 2 主要特性 2 2 1 3 Java 中的布局 3 2 2 開發(fā)工具 3 2 2 1 Eclipse 3 2 2 2 SQL Sever 數(shù)據(jù)庫 3 第三章 需求分析 4 3 1 可行性分析 4 3 1 1 經(jīng)濟可行性 4 3 1 2 操作可行性 4 3 1 3 技術(shù)可行性 4 3 2 功能分析 4 3 2 1 注冊 4 3 2 2 登錄 5 3 2 3 私聊 5 第四章 概要設(shè)計 6 4 1 系統(tǒng)總體結(jié)構(gòu) 6 4 2 數(shù)據(jù)庫設(shè)計 6 第五章 詳細(xì)設(shè)計 8 5 1 登錄模塊設(shè)計 8 5 2 注冊模塊設(shè)計 9 5 3 消息格式化設(shè)計 10 5 4 界面設(shè)計 10 5 4 1 登錄界面 10 5 4 2 注冊界面 11 5 4 3 聊天界面 11 結(jié)束語 12 參考文獻(xiàn) 13 簡單聊天系統(tǒng)的設(shè)計與實現(xiàn) 1 第一章第一章引言引言 當(dāng)今主流的聊天工具有 QQ MSN 網(wǎng)易泡泡等 國內(nèi)最熱門的聊天工具當(dāng) 屬騰訊 QQ 是由深圳市騰訊計算機系統(tǒng)公司開發(fā)的 基于 Internet 的即時尋呼 軟件 你可以通過 QQ 和你的親朋好友進(jìn)行交流 即時收發(fā)消息 文件傳輸 語音視頻 發(fā)送郵件等功能 QQ 不僅僅在電腦在應(yīng)用 還能通過移動電話登錄 手機騰訊網(wǎng)址或者下載手機可用的手機客戶端進(jìn)行 QQ 的登錄使用 QQ 支持顯 示好友的在線信息 即時傳送信息 即時交談 即時發(fā)送文件和網(wǎng)址 QQ 可以 在 Win95 98 NT 2000 XP Win7 操作系統(tǒng)下運行 是十分靈活的網(wǎng)絡(luò)通信工 具 雖然 QQ 軟件是免費的 而且功能也是越來越強大 但是唯一的不足的地 方就是都需要在電腦聯(lián)網(wǎng)的情況下才能使用 脫離了 Internet 根本就是一個只 能看不能用的軟件 為了能在脫離了 Internet 的情況下使用的局域網(wǎng)聊天工具 那就必須要有服務(wù)器端 而本系統(tǒng)就是包括服務(wù)器端和客戶端 可以在局域網(wǎng) 聊天的一個軟件 簡單聊天系統(tǒng)的設(shè)計與實現(xiàn) 2 第二章第二章關(guān)鍵技術(shù)關(guān)鍵技術(shù) 2 1 開發(fā)技術(shù) 2 1 1 什么是 Java Java 是一種可以跨平臺應(yīng)用的面向?qū)ο蟮某绦蛟O(shè)計語言 他是由 Sun 公司在 1995 年推出的程序設(shè)計語音 Java 具有很高的通用性 安全性 跨平臺等特點 Java 與一般的 編譯執(zhí)行計算機語音和解釋執(zhí)行計算機語音不同 他它首先是將源代碼編譯成二進(jìn)制的字 節(jié)碼 然后在各種不同平臺的虛擬機上來解釋執(zhí)行字節(jié)碼 從而實現(xiàn)了 一次編譯 到處 執(zhí)行 的跨平臺的特性 這也是 Java 語言最大的特點 Sun 公司在推出 Java 后就將它作為 一種開放式的技術(shù) 從而吸引了很多編程開發(fā)者 而 Sun 公司的口號之一就是 Java 語言 是靠群體的力量而非公司的力量 并且獲得了廣大軟件開發(fā)商的認(rèn)可 2 1 2 主要特性 Java 語言的主要特性有 1 Java 語言是簡單的 Java 語言的語法和 C 語言 C 語言很相近 從而使得大多數(shù)的程序員很容易學(xué)習(xí) 2 Java 語言是一個面向?qū)ο蟮?比 C 更純粹的面向?qū)ο蟪绦蛟O(shè)計語言 3 Java 語言是分布式的 Java 的網(wǎng)絡(luò)能力強大 且易于使用 4 Java 語言是健壯的 Java 的強類型機制 異常處理 廢料的自動收集等是 Java 程序健壯性的重要保證 5 Java 語言是安全的 Java 通常應(yīng)用在網(wǎng)絡(luò)環(huán)境中 因此 Java 提供了一個安全機制來防止惡意代碼的攻擊 6 Java 語言是體系結(jié)構(gòu)中立的 Java 程 序在 Java 平臺上被編譯為體系結(jié)構(gòu)中立的字節(jié)碼格式 然后可以在實現(xiàn)這個 Java 平臺的任 何系統(tǒng)中運行 7 Java 語言是可移植的 這種可移植行又來源于體系結(jié)構(gòu)的中立性 8 Java 語言是解釋型的 Java 程序在 Java 平臺上被編輯為字節(jié)碼格式 然后才可以在這個 Java 平臺的任何系統(tǒng)中運行 9 Java 是高性能的 與那些解釋型的高級腳本語言相比 Java 的確是高性能的 10 Java 語言是多線程的 在 Java 語言中 線程是特殊的對象 它 必須由 Thread 類或其子類來創(chuàng)建 通常有兩種方法創(chuàng)建 第一 從 Thread 類派生出子類 并重寫 run 方法 使用該子類創(chuàng)建的對象即為線程 第二 實現(xiàn) Runnable 接口 2 1 3 Java 中的布局 邊框布局 BorderLayout 流布局 FlowLayout 網(wǎng)格布局 GridLayout 分組布局 簡單聊天系統(tǒng)的設(shè)計與實現(xiàn) 3 GroupLayout Box 類布局 2 2開發(fā)工具 2 2 1Eclipse Eclipse 是一個開放源代碼的 基于 Java 的可擴展開發(fā)平臺 就其本身而言 它只是一個框架和一組服務(wù) 用于通過插件組件構(gòu)建開發(fā)環(huán)境 幸運的是 Eclipse 附帶了一個標(biāo)準(zhǔn)的插件集 包括 Java 開發(fā)工具 Java Development Kit JDK 雖然大多數(shù)用戶很樂于將 Eclipse 當(dāng)作 Java 集成開發(fā)環(huán)境 IDE 來使用 但 Eclipse 的目標(biāo)卻不僅限于此 Eclipse 還包括插件開發(fā)環(huán)境 Plug in Development Environment PDE 這個組件主要針對希望擴展 Eclipse 的軟件 開發(fā)人員 因為它允許他們構(gòu)建與 Eclipse 環(huán)境無縫集成的工具 由于 Eclipse 中的每樣?xùn)|西都是插件 對于給 Eclipse 提供插件 以及給用戶提供一致和統(tǒng)一 的集成開發(fā)環(huán)境而言 所有工具開發(fā)人員都具有同等的發(fā)揮場所 這種平等和一致性并不僅限于 Java 開發(fā)工具 盡管 Eclipse 是使用 Java 語 言開發(fā)的 但它的用途并不限于 Java 語言 例如 支持諸如 C C 和 COBOL 等編程語言的插件已經(jīng)可用 或預(yù)計將會推出 Eclipse 框架還可用來作為與軟 件開發(fā)無關(guān)的其他應(yīng)用程序類型的基礎(chǔ) 比如內(nèi)容管理系統(tǒng) 基于 Eclipse 的應(yīng)用程序的一個突出例子是 IBM RationalSoftwareArchitect 它構(gòu)成了 IBM Java 開發(fā)工具系列的基礎(chǔ) 2 2 2SQL Server 數(shù)據(jù)庫 SQL 是英文 Structured Query Language 的縮寫 意思為結(jié)構(gòu)化查詢語言 SQL 語言的 主要功能就是同各種數(shù)據(jù)庫建立聯(lián)系 進(jìn)行溝通 SQL Server 是由 Microsoft 開發(fā)和推廣的 關(guān)系數(shù)據(jù)庫管理系統(tǒng) DBMS 它最初是由 Microsoft Sybase 和 Ashton Tate 三家公司共 同開發(fā)的 并于 1988 年推出了第一個 OS 2 版本 Microsoft SQL Server 近年來不斷更新版 本 1996 年 Microsoft 推出了 SQL Server 6 5 版本 1998 年 SQL Server 7 0 版本和用 戶見面 SQL Server 2000 是 Microsoft 公司于 2000 年推出 目前最新版本是 2012 年 3 月 份推出的 SQL SERVER 2012 特點 1 真正的客戶機 服務(wù)器體系結(jié)構(gòu) 2 圖形化用戶界面 使系統(tǒng)管理和數(shù)據(jù)庫 管理更加直觀 簡單 3 豐富的編程接口工具 為用戶進(jìn)行程序設(shè)計提供了更大的選擇 余地 4 SQL Server 與 Windows NT 完全集成 利用了 NT 的許多功能 如發(fā)送和接受 消息 管理登錄安全性等 SQL Server 也可以很好地與 Microsoft BackOffice 產(chǎn)品集成 簡單聊天系統(tǒng)的設(shè)計與實現(xiàn) 4 5 具有很好的伸縮性 可跨越從運行 Windows 95 98 的膝上型電腦到運行 Windows 2000 的大型多處理器等多種平臺使用 6 對 Web 技術(shù)的支持 使用戶能夠很容易地將數(shù)據(jù)庫 中的數(shù)據(jù)發(fā)布到 Web 頁面上 7 SQL Server 提供數(shù)據(jù)倉庫功能 這個功能只在 Oracle 和 其他更昂貴的 DBMS 中才有 第三章第三章需求分析需求分析 3 1 可行性分析 3 1 1 經(jīng)濟可行性 本系統(tǒng)需要一個 SQL Server 數(shù)據(jù)庫服務(wù)器 由于使用人數(shù)比較少 安裝一個免費的 SQL Server 數(shù)據(jù)庫完全可以應(yīng)付需要 所以成本就不用考慮了 3 1 2 操作可行性 只要一臺以上計算機連接在同一個局域網(wǎng)內(nèi) 本系統(tǒng)就可以安裝使用 所以操作上完 全不存在問題 3 1 3 技術(shù)可行性 本系統(tǒng)采用 Java 語言 是基于 CS 架構(gòu)的 開發(fā)這個系統(tǒng)需要開發(fā)者對 socket 編程和 Java Swing 這兩方面的技術(shù)比較熟 由于本人長期從事于 java 語言編程 所以技術(shù)方面是 可行的 3 2 功能分析 3 2 1 注冊 服務(wù)器收到用戶的注冊請求 便開始接受客戶傳遞的信息 諸如客戶的呢稱 性別 籍貫 個人資料等 接受完畢后 便通過 JDBC 與后臺數(shù)據(jù)庫連接 然后向數(shù)據(jù)庫添加記 錄 如果成功 便向客戶返回其號碼 客戶收到服務(wù)器返回的信息后 便打開主登陸窗口 簡單聊天系統(tǒng)的設(shè)計與實現(xiàn) 5 3 2 2 登錄 在客戶端 用戶輸入其號碼和密碼 然后建立與服務(wù)器的連接 告訴服務(wù)器我要登錄 服務(wù)器收到后 開始通過 JDBC 讀取數(shù)據(jù)庫 然后與用戶輸入的信息比較 如果成功 便 打開主程序窗口 然后客戶向服務(wù)器請求讀取好友名單 服務(wù)器收到該請求 開始讀取數(shù) 據(jù)庫中的表 得到好友的號碼后 再在 icq 表中讀取好友資料 然后向客戶端發(fā)送這些信 息 客戶收到后就在主窗口顯示好友 并且建立幾個矢量用以存儲好友的呢稱 號碼 3 2 3 私聊 私聊就是兩個聊天 客戶端首先發(fā)送消息到服務(wù)器端 服務(wù)器端根據(jù)發(fā)送人信息和接 收者信息來轉(zhuǎn)發(fā) 例如服務(wù)器接收到一個 A 發(fā)給 B 的消息先判斷 B 是否已經(jīng)在線 如果在 線就將信息發(fā)送過去 B 接收到 A 發(fā)來的信息 如果是未建立對話窗口 就詢問是否建立 對話 否則就丟棄信息 簡單聊天系統(tǒng)的設(shè)計與實現(xiàn) 6 第四章第四章概要設(shè)計概要設(shè)計 4 1 系統(tǒng)總體結(jié)構(gòu) 4 2 數(shù)據(jù)庫設(shè)計 1 用戶表 UserInfo 屬性 用戶編號 uid 用戶名 uname 密碼 upass 登錄ip 和端口號 ipport 狀態(tài) status 關(guān)系 一個用戶可以有多個好友 一個用戶可以有多條消息 1用戶編號uid整數(shù) 2用戶名uname字符型 簡單聊天系統(tǒng)的設(shè)計與實現(xiàn) 7 3密碼upass字符型 4登錄ip和端口號ipport字符型 5狀態(tài)status布爾型 2 好友表 Friends 屬性 好友編號 fid 用戶好友編號 fuid 1好友編號fid整數(shù) 2用戶好友編號 外鍵 引用UserInfo中的 uid fuid整數(shù) 3 消息表 Messages 屬性 消息編號 mid 接受消息的用戶編號 ruid 發(fā)送消息 的用戶編號 suid 發(fā)送消息的時間 sendTime 消息 類型 mtype 1 消息編號mid整數(shù) 2 接受用戶的編號 外 鍵 引用 UserInfo 中 的 uid ruid整數(shù) 3 發(fā)送用戶的編號 外 鍵 引用 UserInfo 中 的 uid suid整數(shù) 4 發(fā)送時間sendTime日期類型 5 消息類型mtype布爾型 第五章第五章詳細(xì)設(shè)計詳細(xì)設(shè)計 簡單聊天系統(tǒng)的設(shè)計與實現(xiàn) 8 5 1 登錄模塊設(shè)計 該模塊的界面是仿照騰訊 QQ 的界面 界面與騰訊 QQ 相比雖然不是那么美觀 但是 基本的功能也與其差不多了 在這個界面上用戶的主要操作有用戶輸入用戶名 密碼 如 果還沒有注冊用戶名的網(wǎng)友可以通過登錄界面的用戶注冊 從而使用該程序 在登錄該程 序之前需要開啟服務(wù)器 當(dāng)用戶把用戶名和密碼輸入好后點擊登錄按鈕后 就開始與服務(wù) 器建立連接 服務(wù)器收到后開始通過 JDBC 的方式讀取數(shù)據(jù)庫的內(nèi)容 然后與用戶輸入的 用戶名和密碼進(jìn)行比較 如果用戶名不存在或者用戶的密碼錯誤則登錄失敗 并且提示失 敗的原因 如果有時候沒有把服務(wù)器開啟的話 則在登錄失敗后 會提示連接服務(wù)器超時 登錄成功后直接跳到程序的主窗口 開始向服務(wù)器請求讀取好友分組和好友名單 簡單聊天系統(tǒng)的設(shè)計與實現(xiàn) 9 5 2 注冊模塊設(shè)計 該模塊是對于那些尚未注冊的用戶進(jìn)行注冊使用 在這個界面注冊的用戶需要填寫的 有 昵稱 密碼 確認(rèn)密碼 密保問題 問題答案 當(dāng)這些內(nèi)容填寫完成以后 就可以點 擊提交注冊按鈕 點擊這個按鈕后就會創(chuàng)建一個與服務(wù)器端的連接 連接成功就會將填寫 的信息發(fā)送到服務(wù)器端 如果服務(wù)器寫入數(shù)據(jù)庫成功 那么你便注冊成功 成功后會返回 一個數(shù)字帳號給用戶 這個時候你可以用你剛才注冊成功的數(shù)字帳號和密碼進(jìn)行登錄 簡單聊天系統(tǒng)的設(shè)計與實現(xiàn) 10 5 3 消息格式化設(shè)計 5 4 界面設(shè)計 5 4 1 登錄界面 運行程序后 彈出登錄界面 等待用戶操作 簡單聊天系統(tǒng)的設(shè)計與實現(xiàn) 11 5 4 2 注冊界面 在登錄界面 點擊 注冊 彈出注冊界面 按要求輸入信息 5 4 3 聊天界面 簡單聊天系統(tǒng)的設(shè)計與實現(xiàn) 12 結(jié)束語結(jié)束語 課程設(shè)計的第一天我不是拿到任務(wù)書就開始敲代碼 一整天我都是在看書 上網(wǎng)絡(luò)編程的知識 然后就是在網(wǎng)上找資料 找插件 本來最先開始我使用的 是 TCP 協(xié)議進(jìn)行通信 但是后來感覺聊天系統(tǒng)不需要對數(shù)據(jù)的傳輸有絕對的正 確 況且是在通信狀況非常好的局域網(wǎng) 所以我把協(xié)議改成了 UDP 設(shè)計的聊 天窗口需要輸入對方 IP 如果對方也啟動了程序就可以相互發(fā)送消息 如果不 輸入 IP 則默認(rèn)的是向本機發(fā)送 數(shù)據(jù)庫的連接也遇上了點小麻煩 查詢數(shù)據(jù)庫 還比較順利的 可是當(dāng)要修改數(shù)據(jù)庫時 試了多次都沒添加進(jìn)去 后來發(fā)現(xiàn)是 因為我寫的數(shù)據(jù)庫連接的類查詢和插入必須用兩個不同的實例 不然數(shù)據(jù)集會 在查詢以后有所改變 界面的設(shè)計是用的我在網(wǎng)上找的 jigloo 插件 因為這個 插件功能比較完善 而且添加的也很方便 直接解壓到 ECLIPSE 文件夾就行了 起初我以為有了這個插件就可以像 VB 那樣拖一拖就能完成 可是后來發(fā)現(xiàn)它 與 VB 的界面設(shè)計完全不一樣 最終還是要自己動手修改代碼 所以我采取的 措施是先把組件都設(shè)置好 然后自己添加事件 數(shù)據(jù)庫的連接等等 好在組件 設(shè)置好以后的 JFRAME 類的代碼寫的非常清楚 一個 MAIN 函數(shù)新建窗體實例 然后構(gòu)造函數(shù)

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論