版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、基于TCP/UDP協(xié)議的局域網(wǎng)即時(shí)通信工具的設(shè)計(jì)與實(shí)現(xiàn)摘 要隨著計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)的發(fā)展,各種各樣基于網(wǎng)絡(luò)的應(yīng)用也隨之誕生,比如基于互聯(lián)網(wǎng)的信息發(fā)布,通信,數(shù)據(jù)共享等等。局域網(wǎng)的發(fā)展也同樣迅速。很多政府機(jī)構(gòu),企業(yè),學(xué)校,都是先以一個(gè)統(tǒng)一的局域網(wǎng)聯(lián)結(jié)在一起,再分別接入INTERNET.因此基于局域網(wǎng)的即時(shí)通信工具,就這樣應(yīng)運(yùn)而生了。隨著信息技術(shù)的發(fā)展,即時(shí)通信(Instant Message)軟件應(yīng)運(yùn)而生,即時(shí)通信工具讓我們沖破了地域的界限,隨時(shí)隨地和各地的朋友溝通聯(lián)系,它們已經(jīng)成為新時(shí)代人們生活和工作中不可缺少的伙伴!即時(shí)通信(Instant Message),由于其具有實(shí)時(shí)性、跨平臺行、成本低、
2、效率高等優(yōu)點(diǎn)而受到廣泛的使用。設(shè)計(jì)并實(shí)現(xiàn)一個(gè)能夠處理多用戶進(jìn)行實(shí)時(shí)、安全的即時(shí)通信工具具有較強(qiáng)的現(xiàn)實(shí)意義。本文設(shè)計(jì)并實(shí)現(xiàn)了基于局域網(wǎng)的簡單即時(shí)通信系統(tǒng),系統(tǒng)采用C/S模式,底層通信公告SOCKET套接字接口實(shí)現(xiàn),服務(wù)器負(fù)責(zé)客戶端的登錄驗(yàn)證,好友信息的保存和消息的發(fā)送。客戶端采用點(diǎn)對點(diǎn)方式實(shí)現(xiàn)消息傳遞,并能實(shí)現(xiàn)文件的傳輸。本系統(tǒng)基于JAVA,使用Eclipse等作為開發(fā)工具完成即時(shí)通信系統(tǒng)的設(shè)計(jì)。關(guān)鍵詞:局域網(wǎng) 即時(shí)通信 文件傳輸 TCP協(xié)議 UDP協(xié)議 The Design and Implementation of Simple Instant Message Software Based
3、on TCP/UDP Protocol Abstract Along with the high-speed development of the computer network technology, various of applications based on network was born, like information releasing, data sharing . The development of the LAN is the same fast. Some governments, enterprises and schools constitute a LAN
4、 first ,then join into INTERNET. So the instant messenger in LAN was borned. With the development of information technology, instant messaging ( Instant Message ) emerge as the times require software, instant communication tools allow us to break geographical boundaries, whenever and wherever possib
5、le and friends from all over the communication link, which has become a new era of people living and working in an indispensable partner! Instant messages have several advantages such as real-time, cross-platform, cheap and efficient. To design a Multi-user IM (instant message) architecture is very
6、important in both theory and realism. The system uses the client/server(C/S) mode. The server takes the responsibility of the login message of client, the saving of friend message and Message heartbeat. The transmission of the basic messages of the customer end will be designed on P2P architecture.
7、The system is based on JAVA, using Eclipse as a development tool to complete the instant communication system design.Key words: Local area network; Instant Message; File Transfer; TCP protocol;UDP protocol目 錄摘 要1The Design and Implementation of Simple Instant Message Software Based on TCP/UDP Protoc
8、ol2第一章 緒論41.1 研究背景及研究意義41.2 即時(shí)通信的基本知識51.3 TCP與UDP的相關(guān)知識6第二章 相關(guān)工具及技術(shù)介紹72.1 系統(tǒng)開發(fā)環(huán)境72.2 系統(tǒng)開發(fā)所用工具82.2.1 Eclipse的簡介及運(yùn)用82.2.2 Java的簡介及運(yùn)用8第三章 系統(tǒng)需求分析與總體設(shè)計(jì)93.1 即時(shí)通信工具需求分析93.2 性能分析103.3 系統(tǒng)設(shè)計(jì)的目標(biāo)103.4 系統(tǒng)功能模塊設(shè)計(jì)11第四章 數(shù)據(jù)庫設(shè)計(jì)114.1 數(shù)據(jù)庫的基本概念114.2 概念結(jié)構(gòu)設(shè)計(jì)124.3 邏輯結(jié)構(gòu)設(shè)計(jì)144.4 物理結(jié)構(gòu)設(shè)計(jì)15第五章 系統(tǒng)詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)165.1 用戶管理165.1.1 新建用戶模塊165.
9、1.2 登錄模塊165.1.3 刪除好友模塊175.2 用戶登錄獲取信息模塊175.3 查找用戶模塊175.4 添加好友模塊185.5 建群模塊185.6 即時(shí)聊天模塊195.6.1 文件傳輸模塊195.6.2 語音聊天模塊19結(jié) 束 語20致 謝21參考文獻(xiàn)22第一章 緒論在網(wǎng)絡(luò)飛速發(fā)展的今天,互聯(lián)網(wǎng)成為人們快速獲取、發(fā)布和傳遞信息的重要渠道,它在人們政治、經(jīng)濟(jì)、生活等各方面發(fā)揮著重要的作用?;ヂ?lián)網(wǎng)上存在大量的信息,人與人之間的溝通、信息交換顯得尤為重要。人們一直在尋找一種方便、低廉的交流信息工具,因此網(wǎng)上聊天便成為人們的首先,而一個(gè)好的的即時(shí)通信工具是操作簡單、方便,界面美觀大方、人性化、
10、節(jié)約系統(tǒng)資源。一個(gè)好的即時(shí)通信工具不僅僅是方便了人們的生活,同時(shí)也給企業(yè)帶來了商業(yè)利益,很多事情都可以通過進(jìn)行聊天而解決、通過服務(wù)器的消息傳輸讓用戶能夠很快的獲取信息,節(jié)約了時(shí)間也創(chuàng)造了更多的利益。1.1 研究背景及研究意義 隨著社會(huì)經(jīng)濟(jì)技術(shù)的發(fā)展,即時(shí)通信在全球的應(yīng)用越來越廣泛,從以前最開始的簡單通信到現(xiàn)在視頻聊天、查資料、看電視等功能的應(yīng)用,即時(shí)通信已經(jīng)成為人們生活當(dāng)中必不可少的一部分,即時(shí)通信不僅僅應(yīng)用到生活當(dāng)中,影響著人們的一切,而且現(xiàn)在也應(yīng)用到各個(gè)領(lǐng)域影響著整個(gè)世界。隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,即時(shí)通信正在成為在線活動(dòng)中不可或缺的業(yè)務(wù),即時(shí)通信軟件不僅僅只限于用戶間的聊天活動(dòng),運(yùn)營商已經(jīng)開始
11、利用即時(shí)通信平臺不斷地進(jìn)行業(yè)務(wù)的擴(kuò)張和整合,充分的運(yùn)用到整個(gè)企業(yè),整個(gè)社會(huì)當(dāng)中,而即時(shí)通信軟件的誕生也給企業(yè)的管理帶來了新的思路和手段,推動(dòng)了企業(yè)工作效率的提高,降低了辦公費(fèi)用,引起了工程應(yīng)用領(lǐng)域的研究熱潮。即時(shí)通信的實(shí)時(shí)交互、低廉資費(fèi)、方便快捷讓其成為繼電話、郵件等通訊工具之后的又一個(gè)充分融入現(xiàn)代企業(yè)溝通的互聯(lián)網(wǎng)工具。但是任何事務(wù)在發(fā)展的同時(shí)也必然會(huì)帶來各方面的問題,比如最常見的安全問題,即時(shí)通信的優(yōu)點(diǎn)就是能夠?qū)崟r(shí)交互,馬上能夠知道對方的一切,然而這樣也很容易照成安全隱患問題,一旦沒有做好加密、防火墻工作,數(shù)據(jù)、資料等就很很容易遭到泄露,被惡意篡改、竊聽,從而導(dǎo)致對方收到的信息是錯(cuò)誤的,這樣
12、也會(huì)給工作、生活等方面帶來困難。 所以當(dāng)前,研究網(wǎng)絡(luò)即時(shí)通信系統(tǒng)是當(dāng)今網(wǎng)絡(luò)編程方面的一個(gè)熱門課題。即時(shí)通信正成為在線活動(dòng)中不可或缺的業(yè)務(wù)。小至個(gè)人、企業(yè)大至國家、世界,演化著即時(shí)通信的飛速變化,日益改變豐富著人們的生活。而在經(jīng)濟(jì)技術(shù)日益發(fā)展的情況下,對即時(shí)通信的需求也越來越迫切,所以在此前提下,就急需一種兩全其美的解決方案。 1.2 即時(shí)通信的基本知識隨著信息技術(shù)的發(fā)展,即時(shí)通信(IM)軟件應(yīng)運(yùn)而生,即時(shí)通信工具讓我們沖破了地域的界限,隨時(shí)隨地和各地的朋友溝通聯(lián)系,它們已經(jīng)成為新時(shí)代人們生活和工作中不可缺少的伙伴!即時(shí)通信(IM)是指能夠即時(shí)發(fā)送和接收互聯(lián)網(wǎng)消息等的業(yè)務(wù)。1998年即時(shí)通信的功
13、能日益豐富,逐漸集成了電子郵件、博客、音樂、電視、游戲和搜索等多種功能。即時(shí)通信不再是一個(gè)單純的聊天工具,它已經(jīng)發(fā)展成集交流、資訊、娛樂、搜索、電子商務(wù)、辦公協(xié)作和企業(yè)客戶服務(wù)等為一體的綜合化信息平臺。隨著移動(dòng)互聯(lián)網(wǎng)的發(fā)展,互聯(lián)網(wǎng)即時(shí)通信也在向移動(dòng)化擴(kuò)張。目前,微軟、AOL、Yahoo等重要即時(shí)通信提供商都提供通過手機(jī)接入互聯(lián)網(wǎng)即時(shí)通信的業(yè)務(wù),用戶可以通過手機(jī)與其他已經(jīng)安裝了相應(yīng)客戶端軟件的手機(jī)或電腦收發(fā)消息。即時(shí)通信是一個(gè)基于局域網(wǎng)平臺而設(shè)計(jì)的系統(tǒng),其開發(fā)主要包括后臺數(shù)據(jù)庫的建立、維護(hù)以及前端應(yīng)用程序的開發(fā)兩個(gè)方面。前者要求建立起數(shù)據(jù)一致性、完整性、安全性高的庫,后者則要求應(yīng)用程序功能完備,
14、能夠題供前臺順利運(yùn)行,易使用等特點(diǎn)。即時(shí)通信具有:管理員設(shè)置客戶端的單位組織結(jié)構(gòu)信息;客戶端不需自行添加聯(lián)系人;聯(lián)系人之間能夠發(fā)送消息;聯(lián)系人之間能夠互相傳送文件;管理員能夠建立現(xiàn)了人分組,加入分組后的聯(lián)系人允許互相通信;分組成員之間可以群發(fā)消息等功能。1.3 TCP與UDP的相關(guān)知識Java網(wǎng)絡(luò)編程中有兩種不同的通訊協(xié)議,分別是TCP(面向連接)與UDP(面向無連接),兩種協(xié)議各有優(yōu)缺點(diǎn)。TCP:是Tranfer Control Protocol的簡稱,是一種面向連接的保證可靠傳輸?shù)膮f(xié)議。通過TCP協(xié)議傳輸,得到的是一個(gè)順序的無差錯(cuò)的數(shù)據(jù)流。發(fā)送方和接收方的成對的兩個(gè)socket之間必須建立
15、連接,以便在TCP協(xié)議的基礎(chǔ)上進(jìn)行通信,當(dāng)一個(gè)socket(通常都是server socket)等待建立連接時(shí),另一個(gè)socket可以要求進(jìn)行連接,一旦這兩個(gè)socket連接起來,它們就可以進(jìn)行雙向數(shù)據(jù)傳輸,雙方都可以進(jìn)行發(fā)送或接收操作。 UDP:是User Datagram Protocol的簡稱,是一種無連接的協(xié)議,每個(gè)數(shù)據(jù)報(bào)都是一個(gè)獨(dú)立的信息,包括完整的源地址或目的地址,它在網(wǎng)絡(luò)上以任何可能的路徑傳往目的地,因此能否到達(dá)目的地,到達(dá)目的地的時(shí)間以及內(nèi)容的正確性都是不能被保證的。其中TCP提供IP環(huán)境下的數(shù)據(jù)可靠傳輸,它提供的服務(wù)包括數(shù)據(jù)流傳送、可靠性、有效流控、全雙工操作和多路復(fù)用。通過
16、面向連接、端到端和可靠的數(shù)據(jù)包發(fā)送。通俗說,它是事先為所發(fā)送的數(shù)據(jù)開辟出連接好的通道,然后再進(jìn)行數(shù)據(jù)發(fā)送;而UDP則不為IP提供可靠性、流控或差錯(cuò)恢復(fù)功能。一般來說,TCP對應(yīng)的是可靠性要求高的應(yīng)用,而UDP對應(yīng)的則是可靠性要求低、傳輸經(jīng)濟(jì)的應(yīng)用。TCP支持的應(yīng)用協(xié)議主要有:Telnet、FTP、SMTP等;UDP支持的應(yīng)用層協(xié)議主要有:NFS(網(wǎng)絡(luò)文件系統(tǒng))、SNMP(簡單網(wǎng)絡(luò)管理協(xié)議)、DNS(主域名稱系統(tǒng))、TFTP(通用文件傳輸協(xié)議)等。第二章 相關(guān)工具及技術(shù)介紹2.1 系統(tǒng)開發(fā)環(huán)境由于日趨發(fā)展的信息技術(shù),對通信工具的要求也逐漸提高,而快速的成長當(dāng)中帶來的影響也是深遠(yuǎn)的,那么如何在這樣
17、的環(huán)境下設(shè)計(jì)一個(gè)安全系數(shù)高、方便快捷的通信工具呢,這就是本系統(tǒng)所要解決的問題。實(shí)現(xiàn)局域網(wǎng)用戶之間的即時(shí)交流與文件傳輸,建立網(wǎng)絡(luò)即時(shí)通信安全機(jī)制,保證信息傳送的及時(shí)性和安全性。本系統(tǒng)采用基于java平臺的Eclipse工具來設(shè)計(jì)并實(shí)現(xiàn)這一通信工具的設(shè)計(jì)與實(shí)現(xiàn)。2.2 系統(tǒng)開發(fā)所用工具2.2.1 Eclipse的簡介及運(yùn)用Eclipse是一種基于 Java 的可擴(kuò)展開源開發(fā)平臺。就其自身而言,它只是一個(gè)框架和一組服務(wù),用于通過插件組件構(gòu)建開發(fā)環(huán)境。幸運(yùn)的是,Eclipse 附帶了一個(gè)標(biāo)準(zhǔn)的插件集,包括為人熟知的 Java 開發(fā)工具(Java Development Tools,JDT)。雖然大多數(shù)
18、用戶很樂于將 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)建與 Eclipse 環(huán)境無縫集成的工具。由于 Eclipse 中的每樣?xùn)|西都是插件,對于給 Eclipse 提供插件,以及給用戶提供一致和統(tǒng)一的集成開發(fā)環(huán)境而言,所有工具開發(fā)人員都具有同等的發(fā)揮場所。這種平等和一致性并不僅限于 Java 開發(fā)工具。盡管 Eclipse 是使用 Java 語言開發(fā)的,但它
19、的用途并不限于 Java 語言;例如,支持諸如 C/C+ 和 COBOL 等編程語言的插件已經(jīng)可用,或預(yù)計(jì)將會(huì)推出。Eclipse 框架還可用來作為與軟件開發(fā)無關(guān)的其他應(yīng)用程序類型的基礎(chǔ),比如內(nèi)容管理系統(tǒng)。更舒服的是,利用Eclipse中的MyEclipse插件來搭建一個(gè)動(dòng)態(tài)JSP程序,快速,簡單、方便。2.2.2 Java的簡介及運(yùn)用技術(shù)上采用sun公司的java語言,該語言有很多有點(diǎn),比如多線程、網(wǎng)絡(luò)流概念、異常捕獲處理、安全性以及速度與性能等方面,并且具有可以一次編寫、到處運(yùn)行的跨平臺優(yōu)點(diǎn)。多線程:多線程是這樣一種機(jī)制,它允許在程序中并發(fā)執(zhí)行多個(gè)指令流,每個(gè)指令流都稱為一個(gè)線程,彼此間互
20、相獨(dú)立,線程又稱為輕量級進(jìn)程,多線程技術(shù)允許你在一個(gè)應(yīng)用程序中啟動(dòng)多個(gè)執(zhí)行輕量程序,使多段程序同時(shí)競爭CPU資源,從而提高系統(tǒng)效率。而對于網(wǎng)絡(luò)通訊工具來說,多線程的特性是必須的,不僅是為了效率,而且可以實(shí)現(xiàn)同時(shí)處理多個(gè)請求。網(wǎng)絡(luò)流:java中的網(wǎng)絡(luò)通訊以及文件的讀取都是以一種流的概念來理解的,這樣,網(wǎng)絡(luò)上數(shù)據(jù)的傳輸其實(shí)就等同于看成一臺機(jī)器上文件的讀取,有利于理解與編寫運(yùn)用程序,java類庫中提供了豐富的IO流類資源以及網(wǎng)絡(luò)編程類資源,軟件開發(fā)人員可以很方便的編寫網(wǎng)絡(luò)應(yīng)用程序。例外處理:Java通過面向?qū)ο蟮姆椒▉硖幚砝?。在一個(gè)方法的運(yùn)行過程中,如果發(fā)生了例外,則這個(gè)方法生成代表該例外的一個(gè)對
21、象,并把它交給運(yùn)行時(shí)系統(tǒng),運(yùn)行時(shí)系統(tǒng)尋找相應(yīng)的代碼來處理這一例外。我們把生成例外對象并把它提交給運(yùn)行時(shí)系統(tǒng)的過程稱為拋棄(throw)一個(gè)例外。運(yùn)行時(shí)系統(tǒng)在方法的調(diào)用棧中查找,從生成例外的方法開始進(jìn)行回朔,直到找到包含相應(yīng)例外處理的方法為止,這一個(gè)過程稱為捕獲(catch)一個(gè)例外。所以,java的例外處理使非常方便的??缙脚_:Java語言的一個(gè)非常重要的特點(diǎn)就是與平臺的無關(guān)性。而使用Java虛擬機(jī)是實(shí)現(xiàn)這一特點(diǎn)的關(guān)鍵。一般的高級語言如果要在不同的平臺上運(yùn)行,至少需要編譯成不同的目標(biāo)代碼。而引入Java語言虛擬機(jī)后,Java語言在不同平臺上運(yùn)行時(shí)不需要重新編譯。Java語言使用模式Java虛擬
22、機(jī)屏蔽了與具體平臺相關(guān)的信息,使得Java語言編譯程序只需生成在Java虛擬機(jī)上運(yùn)行的目標(biāo)代碼(字節(jié)碼),就可以在多種平臺上不加修改地運(yùn)行。Java虛擬機(jī)在執(zhí)行字節(jié)碼時(shí),把字節(jié)碼解釋成具體平臺上的機(jī)器指令執(zhí)行。第三章 系統(tǒng)需求分析與總體設(shè)計(jì)3.1 即時(shí)通信工具需求分析伴隨著當(dāng)今互聯(lián)網(wǎng)的迅速發(fā)展,人們之間的信息交互的實(shí)時(shí)性能變得越來越重要,傳統(tǒng)的電子郵件交互已經(jīng)不能夠滿足人們的即時(shí)通訊要求,鑒于此種情況打算開發(fā)出一款類似于騰訊QQ的即時(shí)通訊軟件,只要經(jīng)過注冊你便可以獲取一個(gè)帳號,通過該帳號你可以在客戶端登陸,成功登錄后便可以在互聯(lián)網(wǎng)上與你的親朋好友進(jìn)行暢談,由于技術(shù)和時(shí)間問題,該軟件主要提供私聊
23、、群聊、好友管理、群管理等常用功能,其它一些功能比如文件傳輸、語音聊天和視頻聊天等功能,由于技術(shù)問題暫時(shí)沒有實(shí)現(xiàn),可以在該系統(tǒng)的基礎(chǔ)上實(shí)現(xiàn)這些功能,也可以在此基礎(chǔ)上進(jìn)行更多功能的擴(kuò)展。3.2 性能分析作為一個(gè)簡單安全的溝通通信平臺,安全及時(shí)通信系統(tǒng)需要保證數(shù)據(jù)通信的即時(shí)性以及通信過程和信息存儲(chǔ)的安全性,為使用者提供信息安全保證,同時(shí)減少系統(tǒng)資源的消耗,保證系統(tǒng)運(yùn)行的速率。 1.數(shù)據(jù)通信完整和可靠性:即時(shí)通信亦即用戶間能實(shí)時(shí)發(fā)送和接收各種信息,包括文本通信和文件傳輸,其中保證數(shù)據(jù)的可到達(dá)性,保證數(shù)據(jù)解讀的正確性,防止數(shù)據(jù)丟失和數(shù)據(jù)錯(cuò)位,從而保證消息傳達(dá)的可靠性。 2.通信安全性:通信安全是指保證
24、客戶之間傳送消息和文件的安全,防止數(shù)據(jù)在傳輸過程中遭泄密、竊密或被篡改數(shù)據(jù)。 3.通信效率和公平性:這主要體現(xiàn)在服務(wù)器端。服務(wù)器需要同時(shí)處理所有用戶發(fā)送的各類信息,并且需要完成數(shù)據(jù)庫存儲(chǔ)、讀取、更新等操作。需要采用適當(dāng)?shù)姆椒ㄌ岣叻?wù)器接受、解讀、處理和發(fā)送數(shù)據(jù)的效率,在指定時(shí)間呃逆完成需要的通信量,提高系統(tǒng)的即時(shí)通信性能,通信保證數(shù)據(jù)處理的公平性,保證各客服端的信息能夠被及時(shí)響應(yīng)和處理。 4.系統(tǒng)可控性:系統(tǒng)可控性是指系統(tǒng)運(yùn)行期間完成數(shù)據(jù)存儲(chǔ)、數(shù)據(jù)庫備份、系統(tǒng)故障恢復(fù)等任務(wù)的性能,包括用戶注冊管理、登陸管理、客戶端運(yùn)行過程中監(jiān)控等模塊的設(shè)計(jì)。防止重要數(shù)據(jù)的丟失或被篡改,提高系統(tǒng)的運(yùn)行可靠性,增
25、強(qiáng)系統(tǒng)使用者的信心。 5.系統(tǒng)穩(wěn)定性能:系統(tǒng)穩(wěn)定性包括系統(tǒng)在高通信強(qiáng)度下是否能夠正常、及時(shí)低處理各客服端的請求和信息,系統(tǒng)在長時(shí)間工作狀態(tài)下是否會(huì)出現(xiàn)異常以及系統(tǒng)容錯(cuò)性能等。防止系統(tǒng)崩潰和程序退出,同時(shí)降低程序運(yùn)行中CPU等資源的消耗。3.3 系統(tǒng)設(shè)計(jì)的目標(biāo) 本課題目標(biāo)是實(shí)現(xiàn)局域網(wǎng)用戶之間的即時(shí)交流與文件傳輸?shù)?,通過基礎(chǔ)的網(wǎng)絡(luò)SOCKET編程,為局域網(wǎng)內(nèi)部的即時(shí)通信提供一個(gè)簡單而較安全的解決方案。3.4 系統(tǒng)功能模塊設(shè)計(jì)該系統(tǒng)主要包括三層,客戶端,服務(wù)器端,以及數(shù)據(jù)庫服務(wù)器,客戶端用來提供用戶的登錄,服務(wù)器端用來對登錄的用戶進(jìn)行管理以及用來處理信息之間的轉(zhuǎn)發(fā),數(shù)據(jù)庫服務(wù)器主要存放一些重要的信息
26、。它們之間的關(guān)系如下圖所示:客戶端服務(wù)器數(shù)據(jù)庫服務(wù)器根據(jù)上述需求的描述,對該系統(tǒng)按照功能進(jìn)行了模塊的細(xì)化,主要包括注冊登錄、好友聊天、好友組管理、群聊天4個(gè)模塊,還有很多其它小模塊,這4個(gè)模塊是實(shí)現(xiàn)該系統(tǒng)的核心模塊,模塊之間的耦合程度非常低,其中注冊模塊是通過B/S結(jié)構(gòu)來實(shí)現(xiàn),不需要安裝客戶端。下圖是上述的4個(gè)重要模塊的用例交互圖。第四章 數(shù)據(jù)庫設(shè)計(jì)4.1 數(shù)據(jù)庫的基本概念數(shù)據(jù)庫技術(shù)是數(shù)據(jù)管理的最新技術(shù),是計(jì)算機(jī)科學(xué)技術(shù)中發(fā)展最快的領(lǐng)域之一,也是應(yīng)用最廣的技術(shù)之一。它已成為各行各業(yè)存儲(chǔ)數(shù)據(jù)、管理信息、共享資源的最先進(jìn)最常用的技術(shù)。數(shù)據(jù)庫,簡單地說就是數(shù)據(jù)的倉庫,即數(shù)據(jù)存放的地方。數(shù)據(jù)庫系統(tǒng)(d
27、atabase systems),是由數(shù)據(jù)庫及其管理軟件組成的系統(tǒng)。它是為適應(yīng)數(shù)據(jù)處理的需要而發(fā)展起來的一種較為理想的數(shù)據(jù)處理的核心機(jī)構(gòu)。它是一個(gè)實(shí)際可運(yùn)行的存儲(chǔ)、維護(hù)和應(yīng)用系統(tǒng)提供數(shù)據(jù)的軟件系統(tǒng),是存儲(chǔ)介質(zhì)、處理對象和管理系統(tǒng)的集合體。數(shù)據(jù)庫系統(tǒng)DBS(Data Base System,簡稱DBS)是一個(gè)實(shí)際可運(yùn)行的存儲(chǔ)、維護(hù)和應(yīng)用系統(tǒng)提供數(shù)據(jù)的軟件系統(tǒng),是存儲(chǔ)介質(zhì)、處理對象和管理系統(tǒng)的集合體。它通常由軟件、數(shù)據(jù)庫和數(shù)據(jù)管理員組成。其軟件主要包括操作系統(tǒng)、各種宿主語言、實(shí)用程序以及數(shù)據(jù)庫管理系統(tǒng)。數(shù)據(jù)庫由數(shù)據(jù)庫管理系統(tǒng)統(tǒng)一管理,數(shù)據(jù)的插入、修改和檢索均要通過數(shù)據(jù)庫管理系統(tǒng)進(jìn)行。數(shù)據(jù)管理員負(fù)責(zé)
28、創(chuàng)建、監(jiān)控和維護(hù)整個(gè)數(shù)據(jù)庫,使數(shù)據(jù)能被任何有權(quán)使用的人有效使用。4.2 概念結(jié)構(gòu)設(shè)計(jì)概念結(jié)構(gòu)設(shè)計(jì)就是對信息世界進(jìn)行建模,常用的概念模型是E-R模型,它是P.P.S.Chen于1976年提出來的。概念結(jié)構(gòu)設(shè)計(jì)的任務(wù)是在需求分析階段產(chǎn)生的需求說明書的基礎(chǔ)上,按照特定的方法把它們抽象為一個(gè)不依賴于任何具體機(jī)器的數(shù)據(jù)模型,即概念模型。概念模型使設(shè)計(jì)者的注意力能夠從復(fù)雜的實(shí)現(xiàn)細(xì)節(jié)中解脫出來,而只集中在最重要的信息的組織結(jié)構(gòu)和處理模式上。而這樣做有三個(gè)好處:(1)從邏輯設(shè)計(jì)中分離出概念設(shè)計(jì)以后,各階段的任務(wù)相對單一化,設(shè)計(jì)復(fù)雜程度大大降低,便于組織管理。(2)概念模型不受特定的DBMS的限制,也獨(dú)立于存儲(chǔ)
29、安排和效率方面的考慮,因而比邏輯模型更為穩(wěn)定。(3)概念模型不含具體的DBMS所附加的技術(shù)細(xì)節(jié),更容易為用戶所理解,因而更有可能準(zhǔn)確反映用戶的信息需求。概念模型在數(shù)據(jù)庫的各級模型中的地位如圖所示:應(yīng)用1 應(yīng)用1 應(yīng)用2 應(yīng)用3外模式3外模式2應(yīng)用要求外模式1 映像概念模 式應(yīng)用2 應(yīng)用要求 概念模式 映像應(yīng)用3 轉(zhuǎn)換物理模式綜合應(yīng)用要求 (a) (b) 概念結(jié)構(gòu)設(shè)計(jì)的特點(diǎn)(1)能真實(shí)、充分地反映現(xiàn)實(shí)世界,包括事物和事物之間的聯(lián)系,能滿足用戶對數(shù)據(jù)的處理要求。是對現(xiàn)實(shí)世界的一個(gè)真實(shí)模型。(2)易于理解,從而可以用它和不熟悉計(jì)算機(jī)的用戶交換意見,用戶的積極參與是數(shù)據(jù)庫的設(shè)計(jì)成功的關(guān)鍵。(3)易于更
30、改,當(dāng)應(yīng)用環(huán)境和應(yīng)用要求改變時(shí),容易對概念模型修改和擴(kuò)充。(4)易于向關(guān)系、網(wǎng)狀、層次等各種數(shù)據(jù)模型轉(zhuǎn)換。概念結(jié)構(gòu)設(shè)計(jì)的方法:設(shè)計(jì)概念結(jié)構(gòu)的E-R模型可采用以下四種方法(1)自頂向下:首先定義全局概念結(jié)構(gòu)的框架,然后逐步細(xì)化(2)自底向上:首先定義各局部應(yīng)用的概念結(jié)構(gòu),然后將它們集成起來,得到全局概念結(jié)構(gòu)(3)逐步擴(kuò)張:首先定義最重要的核心概念結(jié)構(gòu),然后向外擴(kuò)充,以滾雪球的方式逐步生成其他概念結(jié)構(gòu),直至總體概念結(jié)構(gòu)(4)混合策略:將自頂向下和自底向上相結(jié)合,用自頂向下策略設(shè)計(jì)一個(gè)全局概念結(jié)構(gòu)的框架,以它為骨架集成由自底向上策略中設(shè)計(jì)的各局部概念結(jié)構(gòu)。概念結(jié)構(gòu)設(shè)計(jì)的步驟:以自底向上設(shè)計(jì)方法為例進(jìn)
31、行數(shù)據(jù)抽象,設(shè)計(jì)局部E-R模型,即設(shè)計(jì)用戶試圖。集成格局部E-R模型,形成全局E-R模型,即視圖集成。以局部E-R模型設(shè)計(jì)為例:數(shù)據(jù)抽象后得到了實(shí)體和屬性,實(shí)際上實(shí)體和屬性是相對而言的,往往要根據(jù)實(shí)際情況進(jìn)行必要的調(diào)整。在調(diào)整中要遵循以下兩條原則。實(shí)體具有描述信息,而屬性沒有。即屬性必須是不可分的數(shù)據(jù)項(xiàng),不能再由另一些屬性組成。屬性不能與其他實(shí)體具有聯(lián)系,聯(lián)系只能發(fā)生在實(shí)體之間。而根據(jù)本課題來看,通信工具的設(shè)計(jì)則在概念結(jié)構(gòu)設(shè)計(jì)中能夠體現(xiàn)出來,用戶是一個(gè)實(shí)體,賬號、昵稱、性別、年齡、等級等是用戶實(shí)體的屬性。這時(shí),等級只表示用戶屬于那個(gè)級別,不涉及具體情況,換句話說,沒有需要進(jìn)一步描述的特性,即是
32、不可分的數(shù)據(jù)項(xiàng),則根據(jù)原則1可以作為用戶實(shí)體的屬性。用 戶 賬號 等級年齡昵稱性別 屬于 等級學(xué) 生 好友人數(shù)級別年齡性別昵稱賬號 4.3 邏輯結(jié)構(gòu)設(shè)計(jì)1. 概念結(jié)構(gòu)設(shè)計(jì)階段得到的E-R模型是用戶的模型,它獨(dú)立于任何一種數(shù)據(jù)模型,獨(dú)立于任何一個(gè)具體的DBMS。設(shè)計(jì)邏輯結(jié)構(gòu)應(yīng)該選擇最適于描述與表達(dá)相應(yīng)概念結(jié)構(gòu)的數(shù)據(jù)模型,然后選擇最合適的DBMS。設(shè)計(jì)邏輯結(jié)構(gòu)時(shí)一般要分三步進(jìn)行: 將概念結(jié)構(gòu)轉(zhuǎn)換為一般的關(guān)系、網(wǎng)狀、層次模型,并將轉(zhuǎn)化來的關(guān)系、網(wǎng)狀、層次模型向特定DBMS支持下的數(shù)據(jù)模型轉(zhuǎn)換 對數(shù)據(jù)模型進(jìn)行優(yōu)化一般的邏輯結(jié)構(gòu)設(shè)計(jì)分為以下三步:1.初始關(guān)系模式設(shè)計(jì);2.關(guān)系模式規(guī)范化;3.模式的評價(jià)與
33、改進(jìn)。2. 設(shè)計(jì)外模式: 前面我們根據(jù)用戶需求設(shè)計(jì)了局部應(yīng)用視圖,這種局部應(yīng)用視圖只是概念模型,用E-R圖表示。在我們將概念模型轉(zhuǎn)換為邏輯模型后,即生成了整個(gè)應(yīng)用系統(tǒng)的模式后,還應(yīng)該根據(jù)局部應(yīng)用需求,結(jié)合具體DBMS的特點(diǎn),設(shè)計(jì)用戶的外模式。目前關(guān)系數(shù)據(jù)庫管理系統(tǒng)一般都提供了視圖概念,支持用戶的虛擬視圖。我們可以利用這一功能設(shè)計(jì)更符合局部用戶需要的用戶外模式。定義數(shù)據(jù)庫模式主要是從系統(tǒng)的時(shí)間效率、空間效率、易維護(hù)等角度出發(fā)。由于用戶外模式與模式是獨(dú)立的,因此我們在定義用戶外模式時(shí)應(yīng)該更注重考慮用戶的習(xí)慣與方便。包括:使用更符合用戶習(xí)慣的別名針對不同級別的用戶定義不同的外模式,以滿足系統(tǒng)對安全性
34、的要求簡化用戶對系統(tǒng)的使用4.4 物理結(jié)構(gòu)設(shè)計(jì)數(shù)據(jù)庫最終要存儲(chǔ)在物理設(shè)備上。對于給定的邏輯數(shù)據(jù)模型,選取一個(gè)最適合應(yīng)用環(huán)境的物理結(jié)構(gòu)的過程,稱為數(shù)據(jù)庫物理結(jié)構(gòu)設(shè)計(jì)。物理結(jié)構(gòu)設(shè)計(jì)的任務(wù)是為了有效地實(shí)現(xiàn)邏輯模式,確定所采取的存儲(chǔ)策略。此階段是以邏輯設(shè)計(jì)的結(jié)構(gòu)作為輸入,結(jié)合具體DBMS的特點(diǎn)與存儲(chǔ)設(shè)備特性進(jìn)行設(shè)計(jì),選定數(shù)據(jù)庫在物理設(shè)備上的存儲(chǔ)結(jié)構(gòu)和存取方法。數(shù)據(jù)庫的物理結(jié)構(gòu)設(shè)計(jì)可分為兩步:1.確定物理結(jié)構(gòu)。2.評價(jià)物理結(jié)構(gòu),評價(jià)的重點(diǎn)是時(shí)間和空間效率。1.確定物理結(jié)構(gòu)(1)確定數(shù)據(jù)庫的存儲(chǔ)結(jié)構(gòu)(2)設(shè)計(jì)數(shù)據(jù)庫的存取路徑(3)確定數(shù)據(jù)的存放位置(4)確定系統(tǒng)配置2.評價(jià)物理結(jié)構(gòu)和前面幾個(gè)設(shè)計(jì)階段一樣,
35、在確定了數(shù)據(jù)庫的物理結(jié)構(gòu)之后,要進(jìn)行評價(jià),評價(jià)重點(diǎn)是時(shí)間和空間的效率,如果評價(jià)結(jié)果滿足設(shè)計(jì)要求,則可進(jìn)行數(shù)據(jù)庫實(shí)施。實(shí)際上,往往需要經(jīng)過反復(fù)測試才能優(yōu)化數(shù)據(jù)庫物理結(jié)構(gòu)。第五章 系統(tǒng)詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)5.1 用戶管理5.1.1 新建用戶模塊注冊模塊是整個(gè)系統(tǒng)最基礎(chǔ)的模塊,當(dāng)服務(wù)器收到用戶的注冊請求,便開始接受客戶傳遞的消息,諸如客戶的昵稱、性別、籍貫、頭像、個(gè)人資料等。便通過與后臺數(shù)據(jù)庫連接,然后向數(shù)據(jù)庫添加記錄,如果成功,便向客戶返回起申請?zhí)柎a,客戶收到服務(wù)器返回的信息后,便打開主程序窗口。程序流程圖:客戶端主界面信息處理服務(wù)器 端填寫信息注冊頁面點(diǎn)擊注 冊客戶端登錄 框 通過此模塊可以實(shí)現(xiàn)密碼的
36、找回、密碼的修改以及個(gè)人信息的查詢。5.1.2 登錄模塊該模塊主要給注冊成功的用戶提供一個(gè)登錄界面,用戶根據(jù)自己注冊的帳號信息可以與服務(wù)器交互,如果提供的信息通過服務(wù)器的驗(yàn)證便可以成功的登錄系統(tǒng),成功登錄系統(tǒng)之后,可以進(jìn)行一些操作,比如和好友聊天等,使用該模塊之前必須安裝一個(gè)客戶端。登錄模塊只是一個(gè)簡單的頁面,主要填寫用戶名、密碼之類的信息,登錄成功后的主界面包含了系統(tǒng)的大部分功能,比如添加和刪除好友、添加和刪除好友分組、和朋友聊天等功能。下圖是登錄模塊的用例圖:客戶端主界面或者提示錯(cuò)誤并進(jìn)入登陸界面客戶端服務(wù)器對客戶信息處理結(jié)果服務(wù)器端填寫信息發(fā)送到服務(wù)器客戶端 5.1.3 刪除好友模塊登陸
37、系統(tǒng)界面過后,在主界面上則會(huì)顯示用戶分組情況以及好友的基本信息,如昵稱、個(gè)性簽名等,如果在用戶的界面上出現(xiàn)了陌生人的信息,用戶可以選擇直接拉入黑名單,也可以選擇直接刪除。通過服務(wù)器的認(rèn)證對此請求作出處理,若服務(wù)器通過則可以刪除好友。下圖是刪除好友模塊視圖:客戶端已刪除好友通過認(rèn)證批準(zhǔn)服務(wù)器對客戶的請求作出處理服務(wù)器請求刪除信息發(fā)送到服務(wù)器客戶端 5.2 用戶登錄獲取信息模塊用戶登錄系統(tǒng),進(jìn)入主界面之后,除了在主界面上顯示的信息外,還可以獲取其他信息,可以通過在線搜索或者查找等功能獲取用戶想要的信息,此功能模塊能夠通過客戶端到服務(wù)器的響應(yīng),快速便捷的查詢到想要的信息,便于用戶能夠更好的運(yùn)用該系統(tǒng)
38、。下面是功能模塊視圖:客戶端服務(wù)器反應(yīng)顯示基本信息系統(tǒng)主界面客戶端 查找 返回 5.3 查找用戶模塊客戶登錄后,按查找按鈕后,開始向服務(wù)器發(fā)出查找請求,服務(wù)器讀取數(shù)據(jù)庫表中的請求信息并向客戶返回其結(jié)果,客戶收到后在查找窗口中顯示,如果用戶選擇了一個(gè)好友,就向服務(wù)器發(fā)送添加好友請求,服務(wù)器收到后就向數(shù)據(jù)庫表中添加好友的號碼,并從表中讀取其基本信息返回給客服端,然后客戶收到并在主窗口顯示該好友。并通過UDP通知該客戶,對方收到該消息后,可以選擇添加該用戶為好友或者不。下面是流程視圖:服務(wù)器處理該信息客戶端通過UDP來添加好友并將資料送至數(shù)據(jù)庫客戶端客戶端查找結(jié)果頁面服務(wù)器處理請求的結(jié)果發(fā)送到客戶端
39、服務(wù)器端查找請求發(fā)送到服務(wù)器 5.4 添加好友模塊在客戶向服務(wù)器發(fā)送請求添加好友信息后,如果找到就返回用戶服務(wù)信息,打開一個(gè)用戶信息顯示界面,該界面會(huì)提供一個(gè)“添加為好友”按鈕,可以進(jìn)行好友添加,則查找到好友的基本信息,如賬號和昵稱。如果是你所要添加的好友則點(diǎn)擊添加,如不是則添加失敗。客戶端客戶則選擇添加或不添加返回允許結(jié)果給客服端服務(wù)器端認(rèn)證基本信息服務(wù)器端客戶端請求添加好友發(fā)送到服務(wù)器5.5 建群模塊根據(jù)用戶的需要,在本系統(tǒng)中可以實(shí)現(xiàn)建群功能,用戶注冊以后群個(gè)數(shù)為0。用戶在執(zhí)行添加群操作以后,客戶端分別將一個(gè)這個(gè)動(dòng)作的信息發(fā)送給服務(wù)器。服務(wù)器端的表接受到這個(gè)請求,會(huì)進(jìn)行數(shù)據(jù)庫操作,將要添加
40、的群消息插入到數(shù)據(jù)庫中。如果成功,則返回這個(gè)群的消息給客服端,否則返回錯(cuò)誤提示消息。以下是流程視圖:客戶端則可以建群認(rèn)證成功返回給服務(wù)器通過數(shù)據(jù)庫服務(wù)器接受客戶端請求建群信息發(fā)送到服務(wù)器 5.6 即時(shí)聊天模塊5.6.1 文件傳輸模塊文件傳輸模塊的功能主要有:(1)共享文件;(2)查看并下載文件。(1)在啟動(dòng)文件傳輸服務(wù)器的共享文件功能之前,要設(shè)置它的IP號和端口,如果設(shè)置不好,好友將無法看到這些共享的文件,還有一個(gè)重要的步驟就是添加共享文件或目錄,最后啟動(dòng)文件共享。(2)使用文件傳輸?shù)目头艘_配置好服務(wù)器的IP和端口號,以及下載好的文件的存放目錄。如果其中之一配置不好,文件下載將會(huì)失敗。設(shè)
41、置好后,點(diǎn)擊“連接”按鈕,如果配置正確,這時(shí)將會(huì)看到服務(wù)器共享的文件。目前不能支持文件下載,當(dāng)看到一個(gè)文件夾以后,可以雙擊該文件夾并查看文件夾里面的文件。下列視圖說明:客戶端向服務(wù)器發(fā)送文件傳輸請求,如果服務(wù)器端同意傳輸,就讀取文件流并將數(shù)據(jù)流寫到客戶端。客戶端讀取到文件名之后,立即點(diǎn)擊打開,則文件就會(huì)自動(dòng)傳輸給對方??蛻舳私邮瘴募x取文件流發(fā)送到客戶端查找文件創(chuàng)建服務(wù)器監(jiān)聽線程服務(wù)器端打開要傳輸?shù)奈募蛻舳?第五章 系統(tǒng)詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)5.6.2 語音聊天模塊當(dāng)客戶發(fā)送請求語音聊天給好友時(shí),客戶端正在接收請求并將此請求發(fā)送給服務(wù)器,服務(wù)求接收是否語音聊天,將請求結(jié)果返回給客戶端,如果服務(wù)器端同意進(jìn)行語音聊天,則客戶與好友之間的聊天已經(jīng)連接,如果服務(wù)器端拒絕進(jìn)行語音聊天,則返回消息,好友拒絕接收語音聊天,連接失敗??蛻舳四芊襁M(jìn)行語音聊天返回結(jié)果給客戶端服務(wù)器接收并處理服務(wù)器請求語音聊天客戶端 結(jié) 束 語即時(shí)通信是是網(wǎng)絡(luò)發(fā)展的必然趨勢,它的技術(shù)仍然在不斷的改進(jìn)和蓬勃發(fā)展中。本文主要討論了基于TCP/UDP協(xié)議的局域網(wǎng)即時(shí)通信工具的設(shè)計(jì)與實(shí)現(xiàn)。課題通過采用基于java平臺的Eclipse工具來設(shè)計(jì)并實(shí)現(xiàn)這一通信工具,本次設(shè)計(jì)雖然實(shí)現(xiàn)了簡單的即時(shí)通信功能,但是從很多方面來說都是不完善的,僅僅只是實(shí)現(xiàn)了簡單的即時(shí)聊天、好友添加等功能模塊,是一個(gè)簡單而粗略的系統(tǒng)。在
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 旅游產(chǎn)品的創(chuàng)新開發(fā)
- 二零二五年度綠色能源項(xiàng)目9%股權(quán)置換協(xié)議2篇
- 科技魔力:農(nóng)業(yè)4.0
- 2025版廠房拆除工程環(huán)境保護(hù)及補(bǔ)償協(xié)議4篇
- 專業(yè)設(shè)備銷售協(xié)議樣例版B版
- 2025年度拆遷建筑工程居間服務(wù)委托合同4篇
- 2025年度工業(yè)自動(dòng)化設(shè)備租賃合同參考范文4篇
- 2025年廠房設(shè)備租賃與數(shù)字化管理合同范本3篇
- 二零二五版養(yǎng)老地產(chǎn)租賃合同樣本3篇
- 2025年度體育場館租賃合同保證金與押金支付及退還方案3篇
- 重慶育才中學(xué)2025屆化學(xué)九上期末教學(xué)質(zhì)量檢測試題含解析
- 成都市2022級(2025屆)高中畢業(yè)班摸底測試(零診)數(shù)學(xué)試卷(含答案)
- 【云南省中藥材出口現(xiàn)狀、問題及對策11000字(論文)】
- 服裝板房管理制度
- 河北省興隆縣盛嘉恒信礦業(yè)有限公司李杖子硅石礦礦山地質(zhì)環(huán)境保護(hù)與治理恢復(fù)方案
- 第七章力與運(yùn)動(dòng)第八章壓強(qiáng)第九章浮力綜合檢測題(一)-2023-2024學(xué)年滬科版物理八年級下學(xué)期
- 醫(yī)療機(jī)構(gòu)診療科目名錄(2022含注釋)
- 微視頻基地策劃方案
- 光伏項(xiàng)目質(zhì)量評估報(bào)告
- 八年級一本·現(xiàn)代文閱讀訓(xùn)練100篇
- 2023年電池系統(tǒng)測試工程師年度總結(jié)及下一年計(jì)劃
評論
0/150
提交評論