




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、簡單聊天系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)JISHOU UNIVERSITY專業(yè)課課程論文口簡單聊天系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)作者:學(xué)號(hào):所屬 學(xué)院:信息科學(xué)與工程學(xué)院專業(yè)班級(jí):總評分:完成時(shí)間:吉首大學(xué)信息科學(xué)與工程學(xué)院簡單聊天系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)(吉首大學(xué)信息科學(xué)與工程學(xué)院,湖南吉首416000)摘要網(wǎng)絡(luò)聊天室通常直稱聊天室,是一種人們可以在線交談的網(wǎng)絡(luò)論壇,在 同一聊天室的人們通過廣播消息進(jìn)行實(shí)時(shí)交談。在當(dāng)今信息時(shí)代,越來越多 的聊天工具被應(yīng)用,java語言是當(dāng)今流行的網(wǎng)絡(luò)編程語言,它具有面向?qū)?象,與平臺(tái)無關(guān),安全,多線程等特點(diǎn)。使用java語言不僅可以實(shí)現(xiàn)大型企 業(yè)級(jí)的分布式應(yīng)用系統(tǒng),還能夠?yàn)樾⌒偷牡?,嵌入式設(shè)備進(jìn)
2、行應(yīng)用程序的開 發(fā)。面向?qū)ο蟮拈_發(fā)是當(dāng)今世界最流行的開發(fā)方法,它不僅具有更貼近自然 地語義,而且有利于軟件的維護(hù)和繼承,鍛煉我們熟練地應(yīng)用面向?qū)ο蟮乃?想和設(shè)計(jì)方法解決實(shí)際問題的能力。本程序正是用java語言實(shí)現(xiàn)了簡單聊 天功能。它是圖形界面,線程,流與文件系統(tǒng)等技術(shù)的綜合應(yīng)用。其界面 主要采用了 java, awt包,java, swing包等。關(guān)鍵詞:網(wǎng)絡(luò)聊天室;java;面向?qū)ο?;通信機(jī)制;圖形界面3.1.3技術(shù)可行1.2. 1Eclipse32 . 2. 2 SQL Sever 數(shù)據(jù)庫32.1.1 經(jīng)濟(jì)可行性42.1.2 操作可行性43 . 2. 1 注冊44 .2.2 登錄55 .2
3、.3 私聊55. 3消息格式化設(shè)計(jì)105. 4界面設(shè)計(jì)105. 4. 1登錄界面105. 4. 2注冊界面115. 4. 3聊天界面11第一章 引言當(dāng)今主流的聊天工具有QQ, MSN,網(wǎng)易泡泡等,國內(nèi)最熱門的聊天工 具當(dāng)屬騰訊QQ,是由深圳市騰訊計(jì)算機(jī)系統(tǒng)公司開發(fā)的,基于Internet 的即時(shí)尋呼軟件。你可以通過QQ和你的親朋好友進(jìn)行交流,即時(shí)收發(fā)消 息,文件傳輸,語音視頻,發(fā)送郵件等功能,QQ不僅僅在電腦在應(yīng)用, 還能通過移動(dòng)電話登錄手機(jī)騰訊網(wǎng)址或者下載手機(jī)可用的手機(jī)客戶端進(jìn) 行QQ的登錄使用。QQ支持顯示好友的在線信息,即時(shí)傳送信息、即時(shí)交 談、即時(shí)發(fā)送文件和網(wǎng)址。QQ可以在Win95/
4、98/NT/2000/XP/Win7操作系 統(tǒng)下運(yùn)行,是十分靈活的網(wǎng)絡(luò)通信工具。雖然QQ軟件是免費(fèi)的,而且功能也是越來越強(qiáng)大。但是唯一的不足 的地方就是都需要在電腦聯(lián)網(wǎng)的情況下才能使用,脫離了 Internet根本 就是一個(gè)只能看不能用的軟件,為了能在脫離了 Internet的情況下使用 的局域網(wǎng)聊天工具,那就必須要有服務(wù)器端,而本系統(tǒng)就是包括服務(wù)器 端和客戶端,可以在局域網(wǎng)聊天的一個(gè)軟件。第二章關(guān)鍵技術(shù)2.1開發(fā)技術(shù)2. 1. 1什么是JavaJava是一種可以跨平臺(tái)應(yīng)用的面向?qū)ο蟮某绦蛟O(shè)計(jì)語言,他是由 Sun公司在1995年推出的程序設(shè)計(jì)語音。Java具有很高的通用性,安全 性,跨平臺(tái)等特
5、點(diǎn)。Java與一般的編譯執(zhí)行計(jì)算機(jī)語音和解釋執(zhí)行計(jì)算 機(jī)語音不同。他它首先是將源代碼編譯成二進(jìn)制的字節(jié)碼,然后在各種 不同平臺(tái)的虛擬機(jī)上來解釋執(zhí)行字節(jié)碼,從而實(shí)現(xiàn)了 “一次編譯、到處 執(zhí)行”的跨平臺(tái)的特性,這也是Java語言最大的特點(diǎn)。Sun公司在推出 Java后就將它作為一種開放式的技術(shù),從而吸引了很多編程開發(fā)者。而 Sun公司的口號(hào)之一就是“Java語言是靠群體的力量而非公司的力 量”,并且獲得了廣大軟件開發(fā)商的認(rèn)可。Java語言的主要特性有:1) Java語言是簡單的。Java語言的語 法和C語言,C+語言很相近,從而使得大多數(shù)的程序員很容易學(xué)習(xí)。 2) Java語言是一個(gè)面向?qū)ο蟮摹1?/p>
6、C+更純粹的面向?qū)ο蟪绦蛟O(shè)計(jì)語 言。3) Java語言是分布式的。Java的網(wǎng)絡(luò)能力強(qiáng)大且易于使用。4) Java語言是健壯的。Java的強(qiáng)類型機(jī)制,異常處理,廢料的自動(dòng)收集等 是Java程序健壯性的重要保證。5) Java語言是安全的。Java通常應(yīng)用 在網(wǎng)絡(luò)環(huán)境中,因此Java提供了一個(gè)安全機(jī)制來防止惡意代碼的攻擊。 6) Java語言是體系結(jié)構(gòu)中立的。Java程序在Java平臺(tái)上被編譯為體系 結(jié)構(gòu)中立的字節(jié)碼格式,然后可以在實(shí)現(xiàn)這個(gè)Java平臺(tái)的任何系統(tǒng)中運(yùn) 行。7) Java語言是可移植的。這種可移植行又來源于體系結(jié)構(gòu)的中立 性。8) Java語言是解釋型的。Java程序在Java平臺(tái)
7、上被編輯為字節(jié)碼 格式,然后才可以在這個(gè)Java平臺(tái)的任何系統(tǒng)中運(yùn)行。9) Java是高性 能的。與那些解釋型的高級(jí)腳本語言相比,Java的確是高性能的。10) Java語言是多線程的。在Java語言中,線程是特殊的對象,它必須由 Thread類或其子類來創(chuàng)建。通常有兩種方法創(chuàng)建:第一,從Thread類派 生出子類并重寫run方法,使用該子類創(chuàng)建的對象即為線程。第二,實(shí) 現(xiàn) Runnable 接口。2. 2. 2 SQL Server 數(shù)據(jù)庫邊框布局BorderLayout流布局FlowLayouts網(wǎng)格布局GridLayout、分組布局 GroupLayoutBox 類布.局。2. 2 開發(fā)
8、工具2 . 2. 1 EclipseEclipse是一個(gè)開放源代碼的、基于Java的可擴(kuò)展開發(fā)平臺(tái)。就其 本身而言,它只是一個(gè)框架和一組服務(wù),用于通過組件構(gòu)建開發(fā)環(huán)境。 幸運(yùn)的是,Eclipse附帶了一個(gè)標(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),這個(gè)組件主要針對希望 擴(kuò)展Eclipse的軟件開發(fā)人員,因?yàn)樗试S他們構(gòu)建與
9、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ù)計(jì)將會(huì)推出。Eclipse 框架還可用來作為與軟件開發(fā)無關(guān)的其他應(yīng)用程序類型的基礎(chǔ),比如內(nèi) 容管理系統(tǒng)?;贓clipse的應(yīng)用程序的一個(gè)突出例子是IBM RationalSoftwareArchitect,它構(gòu)成IBM
10、 Java開發(fā)工具系列的基 礎(chǔ)。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年推出了第一個(gè)OS/2版本。Microsoft SQL Server近年來不斷 更新版本,1996 年,Microsoft 推出了 SQL Server 6. 5 版本;1998 年,SQL Server 7.0 版本和用戶見面;
11、SQL Server 2000 是 Microsoft 公司于2000年推出,目前最新版本是2012年3月份推出的SQL SERVER 2012o特點(diǎn):1).真正的客戶機(jī)/服務(wù)器體系結(jié)構(gòu)。2).圖形化用戶界面, 使系統(tǒng)管理和數(shù)據(jù)庫管理更加直觀、簡單。3).豐富的編程接口工具, 為用戶進(jìn)行程序設(shè)計(jì)提供了更大的選擇余地。4). SQL Server與 Windows NT完全集成,利用了 NT的許多功能,如發(fā)送和接受消息,管理 登錄安全性等。SQL Server也可以很好地與Microsoft BackOffice產(chǎn)品 集成。5).具有很好的伸縮性,可跨越從運(yùn)行Windows 95/98的膝上型
12、電腦到運(yùn)行Windows 2000的大型多處理港等多種平臺(tái)使用。6).對Web 技術(shù)的支持,使用戶能夠很容易地將數(shù)據(jù)庫中的數(shù)據(jù)發(fā)布到Web頁面 上。7). SQL Server提供數(shù)據(jù)倉庫功能,這個(gè)功能只在Oracle和其他更昂貴的DBMS中才有。第三章 需求分析2.1 可行性分析3.1.1經(jīng)濟(jì)可行性本系統(tǒng)需要一個(gè)SQL Server數(shù)據(jù)庫服務(wù)器,由于使用人數(shù)比較少, 安裝一個(gè)免費(fèi)的SQL Server數(shù)據(jù)庫完全可以應(yīng)付需要,所以成本就不用 考慮了。3. 1. 2操作可行性只要一臺(tái)以上計(jì)算機(jī)連接在同一個(gè)局域網(wǎng)內(nèi),本系統(tǒng)就可以安裝使 用,所以操作上完全不存在問題。3.1. 3技術(shù)可行性本系統(tǒng)采用
13、Java語言,是基于CS架構(gòu)的。開發(fā)這個(gè)系統(tǒng)需要開發(fā) 者對socket編程和Java Swing這兩方面的技術(shù)比較熟。由于本人長期從事于java語言編程,所以技術(shù)方面是可行的。3. 2功能分析3 . 2. 1注冊服務(wù)器收到用戶的注冊請求,便開始接受客戶傳遞的信息,諸如客 戶的呢稱,性別,籍貫,個(gè)人資料等,接受完畢后,便通過JDBC與后臺(tái) 數(shù)據(jù)庫連接,然后向數(shù)據(jù)庫添加記錄,如果成功,便向客戶返回其號(hào) 碼??蛻羰盏椒?wù)器返回的信息后,便打開主登陸窗口。4 .2.2登錄在客戶端,用戶輸入其號(hào)碼和密碼,然后建立與服務(wù)器的連接,告 訴服務(wù)器我要登錄,服務(wù)器收到后,開始通過JDBC讀取數(shù)據(jù)庫,然后與 用戶
14、輸入的信息比較,如果成功,便打開主程序窗口。然后客戶向服務(wù) 落請求讀取好友名單,服務(wù)器收到該請求,開始讀取數(shù)據(jù)庫中的表,得 到好友的號(hào)碼后,再在icq表中讀取好友資料,然后向客戶端發(fā)送這些 信息,客戶收到后就在主窗口顯示好友,并且建立兒個(gè)矢量用以存儲(chǔ)好 友的呢稱,號(hào)碼。5 .2.3私聊私聊就是兩個(gè)聊天??蛻舳耸紫劝l(fā)送消息到服務(wù)器端,服務(wù)器端根 據(jù)發(fā)送人信息和接收者信息來轉(zhuǎn)發(fā)。例如服務(wù)器接收到一個(gè)A發(fā)給B的消息先判斷B是否已經(jīng)在線,如果在線就將信息發(fā)送過去。B接收到A發(fā)來的信息,如果是未建立對話窗口,就詢問是否建立對話,否則就丟棄信息。第四章 概要設(shè)計(jì)1. 1系統(tǒng)總體結(jié)構(gòu)4. 2數(shù)據(jù)庫設(shè)計(jì)1 .
15、用戶表(Userinfo): 屬性:用戶編號(hào)(uid),用戶名(uname),密碼(upass),登錄ip和端口號(hào)(ipport),狀態(tài)(status) o關(guān)系:一個(gè)用戶可以有多個(gè)好友。 一個(gè)用戶可以有多條消息。1用戶編號(hào)uid整數(shù)2用戶名uname字符型3密碼upass字符型4登錄ip和端口號(hào)ipport字符型5狀態(tài)status布爾型2.好友表(Friends):屬性:好友編號(hào)(fid),用戶好友編號(hào)(fuid)。1好友編號(hào)fid整數(shù)2用戶好友編號(hào)(外鍵,引用Userinfo 中的 uid)fuid整數(shù)3.消息表(Messages):屬性:消息編號(hào)(mid),接受消息的用戶編號(hào)(ruid),
16、 發(fā)送消息的用戶編號(hào)(suid),發(fā)送消息的時(shí)間(sendTime),消息類型(mtype)。1消息編號(hào)mid整數(shù)2接受用戶的編號(hào) (外鍵,引用Userinfo 中的 uid)ruid整數(shù)3發(fā)送用戶的編號(hào) (外鍵,引用Userinfo 中的 uid)suid整數(shù)4發(fā)送時(shí)間sendTime日期類型5消息類型mtype布爾型第五章 詳細(xì)設(shè)計(jì)5.1登錄模塊設(shè)計(jì)該模塊的界面是仿照騰訊QQ的界面,界面與騰訊QQ相比雖然不是 那么美觀,但是基本的功能也與其差不多了,在這個(gè)界面上用戶的主要 操作有用戶輸入用戶名,密碼,如果還沒有注冊用戶名的網(wǎng)友可以通過 登錄界面的用戶注冊,從而使用該程序。在登錄該程序之前需
17、要開啟服 務(wù)器,當(dāng)用戶把用戶名和密碼輸入好后點(diǎn)擊登錄按鈕后,就開始與服務(wù) 器建立連接,服務(wù)器收到后開始通過JDBC的方式讀取數(shù)據(jù)庫的內(nèi)容,然 后與用戶輸入的用戶名和密碼進(jìn)行比較,如果用戶名不存在或者用戶的 密碼錯(cuò)誤則登錄失敗,并且提示失敗的原因,如果有時(shí)候沒有把服務(wù)器 開啟的話,則在登錄失敗后,會(huì)提示連接服務(wù)器超時(shí)。登錄成功后直接跳到程序的主窗口,開始向服務(wù)器請求讀取好友分組和好友名單。5. 2注冊模塊設(shè)計(jì)該模塊是對于那些尚未注冊的用戶進(jìn)行注冊使用,在這個(gè)界面注冊 的用戶需要填寫的有,昵稱,密碼,確認(rèn)密碼,密保問題,問題答案, 當(dāng)這些內(nèi)容填寫完成以后,就可以點(diǎn)擊提交注冊按鈕。點(diǎn)擊這個(gè)按鈕后 就
18、會(huì)創(chuàng)建一個(gè)與服務(wù)器端的連接。連接成功就會(huì)將填寫的信息發(fā)送到服 務(wù)器端。如果服務(wù)器寫入數(shù)據(jù)庫成功,那么你便注冊成功,成功后會(huì)返 回一個(gè)數(shù)字帳號(hào)給用戶,這個(gè)時(shí)候你可以用你剛才注冊成功的數(shù)字帳號(hào) 和密碼進(jìn)行登錄。5. 3消息格式化設(shè)計(jì)5. 4界面設(shè)計(jì)5.1.1 登錄界面運(yùn)行程序后,彈出登錄界面,等待用戶操作。5. 4. 2注冊界面在登錄界面,點(diǎn)擊“注冊”,彈出注冊界面,按要求輸入信息。5.4.3聊天界面結(jié)束語課程設(shè)計(jì)的第一天我不是拿到任務(wù)書就開始敲代碼,一整天我都是 在看書上網(wǎng)絡(luò)編程的知識(shí)。然后就是在網(wǎng)上找資料,找插件。本來最先 開始我使用的是TCP協(xié)議進(jìn)行通信,但是后來感覺聊天系統(tǒng)不需要對數(shù) 據(jù)的
19、傳輸有絕對的正確,況且是在通信狀況非常好的局域網(wǎng),所以我把 協(xié)議改成了 UDP。設(shè)計(jì)的聊天窗口需要輸入對方IP,如果對方也啟動(dòng)了 程序就可以相互發(fā)送消息。如果不輸入IP則默認(rèn)的是向本機(jī)發(fā)送。數(shù)據(jù) 庫的連接也遇上了點(diǎn)小麻煩,查詢數(shù)據(jù)庫還比較順利的,可是當(dāng)要修改 數(shù)據(jù)庫時(shí),試了多次都沒添加進(jìn)去。后來發(fā)現(xiàn)是因?yàn)槲覍懙臄?shù)據(jù)庫連接 的類查詢和插入必須用兩個(gè)不同的實(shí)例。不然數(shù)據(jù)集會(huì)在查詢以后有所 改變。界面的設(shè)計(jì)是用的我在網(wǎng)上找的jigl。插件。因?yàn)檫@個(gè)插件功能 比較完善,而且添加的也很方便,直接解壓到ECLIPSE文件夾就行了。 起初我以為有了這個(gè)插件就可以像VB那樣拖一拖就能完成??墒呛髞戆l(fā) 現(xiàn)它與VB的界面設(shè)計(jì)完全不一樣。最終還是要自己動(dòng)手修改代碼。所以 我采取的措施是先把組件都設(shè)置好,然后自己添加事件、數(shù)據(jù)庫的連接 等等。好在組件設(shè)置好以后的JFRAME類的代碼寫的非常清楚。一個(gè)MAIN 函數(shù)新建窗體實(shí)例,然后構(gòu)造函數(shù)新建窗體,運(yùn)用initGUI。方法將組件 都賦值,設(shè)置大小等。清楚簡潔,所以添加功能比較方
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 小學(xué)三年級(jí)數(shù)學(xué)因數(shù)中間或末尾有零的乘法綜合監(jiān)控訓(xùn)練題大全附答案
- 寧夏植生帶邊坡施工方案
- Unit 3 Learning better Part B Read and write Reading time(教學(xué)設(shè)計(jì))-2024-2025學(xué)年人教PEP版(2024)英語三年級(jí)下冊
- 7-1《青蒿素:人類征服疾病的一小步》教學(xué)設(shè)計(jì) 2023-2024學(xué)年統(tǒng)編版高中語文必修下冊
- 13、勞協(xié)二級(jí)課本教材第一章考試必背簡答題
- 第5課 工業(yè)革命與工廠制度 教學(xué)設(shè)計(jì)-2024-2025學(xué)年高中歷史統(tǒng)編版(2019)選擇性必修二
- 2025至2031年中國紅木刻字箏行業(yè)投資前景及策略咨詢研究報(bào)告
- 2025至2031年中國法蘭面尖尾機(jī)釘行業(yè)投資前景及策略咨詢研究報(bào)告
- 2025至2031年中國標(biāo)準(zhǔn)普通鍵盤行業(yè)投資前景及策略咨詢研究報(bào)告
- 2025至2031年中國天然胡蘿卜素膠丸行業(yè)投資前景及策略咨詢研究報(bào)告
- 2022年08月銀清科技有限公司招聘24筆試參考題庫答案詳解版
- 深度學(xué)習(xí)視角下幼兒科學(xué)探究活動(dòng)設(shè)計(jì)
- 全國核技術(shù)利用輻射安全申報(bào)系統(tǒng)填報(bào)指南
- GB/T 18344-2016汽車維護(hù)、檢測、診斷技術(shù)規(guī)范
- 青島版科學(xué)(2017)六三制六年級(jí)下冊第2單元《生物與環(huán)境》全單元課件
- 關(guān)漢卿的生平與創(chuàng)作
- 一年級(jí)語文教材解讀分析ppt
- 《第十一課-絮絮叨叨滿是情課件》小學(xué)心理健康教育
- 江蘇天嘉宜化工有限公司特大事故警示專題教育課件
- 2023年體育單招英語語法練習(xí)專題08 非謂語動(dòng)詞(含解析)
- 如何抓好學(xué)生的行為習(xí)慣課件
評論
0/150
提交評論