版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、本科生畢業(yè)論文(設計)論文(設計)題目:J 即時通訊系統(tǒng)的設計與實現(xiàn)學 院 : 電子信息工程學院 專 業(yè): 網絡工程 32 / 33J 即時通訊系統(tǒng)的設計與實現(xiàn)摘 要運用Internet和Java開發(fā)技術,采用C/S模式,建立一個基于應用的即時通訊系統(tǒng)。本系統(tǒng)實現(xiàn)了用戶注冊,用戶登陸,分組管理,好友管理,查詢用戶,用戶即時通訊,查看聊天記錄等功能。用戶注冊是通過系統(tǒng)來添加新的用戶;用戶登錄用來驗證用戶的信息是否合法;分組管理功能主要是對分組的管理,如添加分組、刪除分組等;好友管理功能主要是對好友的管理,如添加好友、刪除好友等;查詢用戶是查詢所有已注冊的用戶以便加為好友進行通訊;用戶即時通訊使成
2、為好友的雙方可以即時在線交流;查看聊天記錄保存了與好友通訊的所有記錄。關鍵詞即時通訊系統(tǒng);C/S模式;TCP;UDPJ instant messaging system design and ImplementationAbstract:The use of Internet and Java development technologies, using C / S mode, a real-time communication system based on application. The system implements user registration, user login,
3、group administration, friends manage, query user, instant messaging, view the chat history. User registration is through the system to add new users; user login used to authenticate the user's information is legitimate; group management functions mainly for the management of groups, such as addi
4、ng a group, delete group, etc.; friends management functions mainly for friends management, such as adding friends, remove friends, etc.; query the user is the query to all registered users to add as friends to communicate; users to instant messaging to become friends of the two sides can exchange r
5、eal-time online; view chat history with a good save friends of the communication of all records.Key words:Instant messaging system; C / S mode; TCP; UDP目 錄1 緒論11.1 項目背景11.2 國外研究現(xiàn)狀11.3 預期目標和經濟效益21.4 課題簡要介紹31.5系統(tǒng)創(chuàng)新點32 需求分析32.1 功能需求32.1.1 用戶管理32.1.2 分組管理42.1.3 好友管理42.1.4 即時通訊52.2 通訊模型的特點52.2.1 適用性52.2.
6、2 擴展性52.3 可行性研究52.3.1 技術可行性分析52.3.2 不確定性分析62.3.3 分析結論62.4 運行環(huán)境63 概要設計63.1 框架設計63.2 拓撲結構73.3 功能設計93.2.1 用戶注冊模塊93.2.2 用戶登錄模塊103.2.3分組管理模塊103.2.4 好友管理模塊103.2.5 查詢用戶模塊113.2.6 即時通訊模塊113.2.7 聊天記錄模塊123.4 設計原則與一般要求124 系統(tǒng)設計124.1 模塊設計124.2 即時通訊系統(tǒng)關系型數(shù)據庫的實現(xiàn)124.2.1 數(shù)據庫分析134.2.2 數(shù)據庫概念設計134.2.3 數(shù)據庫邏輯結構設計145 系統(tǒng)實現(xiàn)15
7、5.1 注冊模塊155.2 登錄模塊175.3 分組管理模塊185.3.1添加分組185.3.2刪除分組205.4 好友管理模塊215.4.1 添加好友215.4.2 刪除好友235.5 查詢用戶模塊245.6 即時通訊模塊255.7 聊天記錄模塊266 測試報告286.1 測試基本要求286.1.1 容檢查286.1.2 易用性測試286.1.3 功能檢查286.1.4 容錯性測試286.2測試用例方法舉例296.2.1 功能測試296.2.3 性能測試29結論與尚存在的問題30參考文獻30致311 緒論即時通訊軟件的出現(xiàn)正在逐漸改變人們的溝通與交際方式。無論近在咫尺,還是遠隔重洋,通訊也只
8、是在鍵盤和鼠標之間就可以解決問題。即時通訊服務非常適合企業(yè)部或企業(yè)和客戶之間的交流。網絡聊天程序,越來越影響著我們的網絡生活。隨著全球信息化進程的不斷發(fā)展,網絡也在飛速發(fā)展。出于高效、快速地處理各種事務的目的,越來越多的企業(yè)和單位在其部使用局域網來進行工作和交流。在部局域網的幫助下,企業(yè)得以簡化信息流程,提高信息交換的速度,從而提高工作效率。然而,隨著局域網規(guī)模的擴大,業(yè)務量的增加,在局域網上運行的應用越來越多,如知識庫、網絡會議、數(shù)據庫應用和數(shù)據的同步與備份等,這些應用對局域網的信息吞吐、處理能力的要求也越來越高。這些在原有局域網設計之初未曾考慮到的新情況的出現(xiàn)使得局域網不堪重負,容易發(fā)生信
9、息阻塞,此時,局域網不但不能提高生產效率,反而成為工作效率的瓶頸?;赟ocket的局域網聊天室是局域網通信軟件的具體實例之一,它很好地詮釋了Socket通信的原理,并且在局域網部通信、教學、討論等應用中都具有一定的實用價值。它具有信息收發(fā)速度快,性好,占用網絡帶寬資源低,占用服務器吞吐能力低,易于編程實現(xiàn)等優(yōu)點。1.1 項目背景即時聊天使親友的溝通突破時空極限,使人與人的溝通突破上下級極限,使陌生人的溝通突破環(huán)境極限,使自我與外界的溝通突破心理極限作為使用頻率最高的網絡軟件,即時聊天已經突破了作為技術工具的極限,被認為是現(xiàn)代交流方式的象征,并構建起一種新的社會關系。它是迄今為止對人類社會生活
10、改變最為深刻的一種網絡新形態(tài),沒有極限的溝通將帶來沒有極限的生活。聊天一直是網民們上網的主要活動之一,網上聊天的主要工具已經從初期的聊天室、論壇變?yōu)橐訫SN、OICQ(又稱)為代表的即時通訊軟件。迄今為止,全球約有一億多人使用即時通訊軟件在網上交流。中國網民慣用的即時聊天工具騰訊 從1999年2月誕生到現(xiàn)在,注冊用戶已超過1.6億,在線用戶最高時超過200萬人,而每天獨立上線人數(shù)更是達到一千二百多萬,擁有活躍用戶5500萬,幾乎覆蓋所有中國網民。即時通訊工具使用頻率之高,超出任何一種網絡軟件。電子曾是最重要的通訊交流工具,是互聯(lián)網最早的“殺手級應用。到2004年,即時通訊軟件已取代電子,成為最
11、流行的互聯(lián)網通訊工具1.2 國外研究現(xiàn)狀即時通訊軟件,幾乎是每一個上網用戶都必備的聯(lián)絡工具。即時通訊軟件除了能夠讓您迅速地在網上找到自己的朋友和工作伙伴,還可以實時交談和傳遞信息,而且,現(xiàn)在不少即時通訊軟件還集成了文件共享、語音聊天、網絡會議等功能。截止到目前,全球約有近3億多人使用即時通訊軟件進行交流,正因為即時通訊軟件擁有數(shù)以億計的用戶和迅速增長的市場,所以各個公司都盯上了中國這個潛在的最大市場,一時間,即時通訊市場硝煙四起。除了騰訊 和國外的幾款著名即時通訊軟件紛紛推出新版本,網易也推出了一種新的即時通訊軟件網易泡泡。朗瑪公司也推出了名為UC的通訊工具。即時通訊軟件最早發(fā)布于1996年1
12、1月15日,以色列特拉維文的Mirabilis Ltd.發(fā)表了一個題為E.T SURF HOME:MIRABILIS LTD. PROVIDES NEW SOLUTIONS FOR PEER-TO-PEER INTERNET COMMUNICATIONS的新聞稿,同時發(fā)布了他們新產品ICQ(I Seek You)的Beta測試版。這天標志著Internet上的第一個成熱的即時通訊系統(tǒng)(Instant Message System)的誕生。即時通訊服務在誕生之后的幾年時間得到了迅猛發(fā)展,成為新增Internet用戶的3個主要應用之一(WEB,電子和即時通訊)。在國,1999年2月,騰訊公司正式發(fā)
13、布OICQ99 beta build 0210,開通騰訊即時通訊服務。2000年5月,騰訊 同時在線用戶突破10萬;2001年2月l0日,騰訊 同時在線用戶突破100萬。2004年4月份騰訊 同時在線人數(shù)最高記錄已經突破了600萬大關,現(xiàn)在騰訊公司正在把即時通訊系統(tǒng)往移動通訊方向擴展,如今已經將即時通訊與手機短信息(Short Messaging Service ,SMS)成功結合起來。即時通訊軟件涉與和影響的領域已近越來越廣,其競爭也越來越激烈。國 最大的敵手朗瑪UC從2001年開始研發(fā),2002年的12月份UC正式發(fā)布,并且首創(chuàng)了很多技術:UC是國第一個做場景聊天的;UC是第一個把同學錄和
14、校友錄結合的;第一個把即時通訊與休閑游戲相結合的;第一個把發(fā)送動畫與即時通訊相結合的。在一年的發(fā)展里,UC一度達到峰值在線30萬人,注冊用戶達到7000萬??v觀即時通訊軟件業(yè)的迅速發(fā)展,設計并開發(fā)一個即時通訊平臺,對于現(xiàn)階段的學習和研究,都是極為有意義的,基于這個前提和起因,我選擇了設計一個名為J 的即時通訊系統(tǒng)作為我的畢業(yè)設計。1.3 預期目標和經濟效益即時通訊簡稱IM(Instant Messaging),它是一種面向終端使用者的網絡溝通工具服務,使用者可以通過安裝了即時通信的終端機進行兩人或多人之間的實時溝通。即時通信利用的是互聯(lián)網線路,通過文字、語音、視頻、文件的信息交流與互動,有效節(jié)
15、省了溝通雙方的時間與經濟成本。即時通信不再是一個單純的聊天工具,它已經發(fā)展成集交流、資訊、娛樂、搜索、電子商務、辦公協(xié)作和企業(yè)客戶服務等為一體的綜合化信息平臺。即時通訊系統(tǒng)一旦開發(fā)完成,只需要一些基本維護和簡單擴展的費用,產生的經濟效益源源不斷,相當樂觀,有著很廣闊的發(fā)展前景。1.4 課題簡要介紹本課題之前:充分調查了市場主流類似通訊軟件的優(yōu)點與缺點;對大數(shù)操作者的年齡、職業(yè)、文化層次等做了一系列調查;在結合行業(yè)自身的特點的同時,也充分考慮到設計者自身的條件與現(xiàn)有技術成熟程度的基礎上做出的一款適合大多數(shù)人使用的即時通訊軟件。產品定位:大多數(shù)人能夠使用,操作者有無相關專業(yè)知識都可主要功能有:用戶
16、注冊用戶登陸分組管理好友管理即時通訊 查詢用戶 查詢聊天記錄實現(xiàn)技術:MyEclipse 7.1SQL Server 2000 數(shù)據庫1.5 系統(tǒng)創(chuàng)新點 (建議改為系統(tǒng)特點)操作簡單、方便,快捷、準確、數(shù)據存儲安全可靠,針對自身特點去除了不必要的冗余東西,使系統(tǒng)負擔最小,速度最快;采用更高的安全機制,使數(shù)據更加安全,用戶可以放心的使用。2 需求分析2.1 功能需求2.1.1 用戶管理即時通訊系統(tǒng)擁有多個賬戶,允許多個用戶注冊;一個用戶可以注冊多個標識;注冊所使用的類型為字母數(shù)字的組合;注冊新用戶時必須填寫符合要求的信息;注冊后只有用戶名與密碼驗證成功才能正確登錄。用戶管理如圖2-1所示。圖2-
17、1 用戶管理用例圖2.1.2 分組管理分組管理部分要能夠實現(xiàn)分組的添加與刪除,所添加的分組名稱可以是中文也可以是字母數(shù)字的組合,通過對分組的有效管理以便于更方便的管理好友。分組管理如圖2-2所示。圖2-2 分組管理用例圖2.1.3 好友管理用戶可以查詢所有用戶;選擇適當?shù)目梢约訛楹糜?;一個用戶可以添加多個人為好友,一個用戶也可以被多個人添加為好友;用戶可以刪除好友;用戶只可以將好友放在一個組中。好友管理如圖2-3所示。圖2-3 好友管理用例圖2.1.4 即時通訊即時通訊模塊用戶可以與在線的好友進行聊天,用戶首先查看好友是否在線,如果在線即可進行即時通訊,并且用戶可以查看與好友的所有聊天記錄。即
18、時通訊如圖2-4所示。圖2-4 即時通訊用例圖2.2 通訊模型的特點2.2.1 適用性作為一個一般性的模型,本通訊模型適用于無線網絡和Internet上現(xiàn)存的多種系統(tǒng)。模型中的J 可以是Internet上的應用程序,也可以是移植到移動和其他各種無線手持設備上的應用程序。即時通訊和服務可以是Internet上ICQ(I seek you!的諧音)服務,可以是GSM(Global System for Mobile Communications,為全球移動通訊系統(tǒng))標準中的SMS,也可以是NTT DoCoMo(日本最大的攜帶公司,NTT是New Technology Telescope的編寫,Do
19、CoMo是Do Communication Over the Mobile Network電信溝通無界限的意思)的I-MODE(information-mode,一種移動服務)服務。2.2.2 擴展性模型具有很強的擴展性。本模型并沒有規(guī)定服務必須采用中央服務器。在模型實現(xiàn)的時候,可以使用基于中央服務器的星形結構,也可以使用對等網絡結構甚至其他混合結構。例如,騰訊 的通訊服務系統(tǒng)使用的是基于中央服務器的Client/Server的混合星型結構,而即時通訊服務使用的是對等網絡加客戶機服務器結構。2.3 可行性研究2.3.1 技術可行性分析(1)項目開發(fā)過程中遇到難以克服的技術問題,該怎么辦。這一方
20、面,我們慶幸的是在學校我們有好多的老師在背后支持著我們,同時學校的網絡比較方面,給我們解決問題提供了方便。而且,憑借借閱圖書館收藏圖書更增加了我們解決技術問題的信心。(2)軟件的質量如何。有些應用對實時性要求很高,如果軟件運行慢如蝸牛,即便功能完備也毫無實用價值。有些高風險的應用對軟件的正確性與精確性要求極高,如果軟件出了差錯而造成用戶利益損失,那么軟件開發(fā)在某種意義上說也就失敗了。鑒于此,我們在編碼測試的時候,找專業(yè)老師作為技術支持。并且在完成之后,實際驗證可行性,同時要考慮到機器硬件設備的不同而給軟件帶來的不可預知的結果,所以在機房的不同電腦上運行軟件達到測試目的。2.3.2 不確定性分析
21、需要格外考慮的實際情況也可以說是面臨的一個現(xiàn)實問題就是:畢業(yè)生面臨著畢業(yè)與找工作,還有就是最后的畢業(yè)答辯與論文設計。這個過程中,學校會有許多有關畢業(yè)生的信息要安排,事情要處理。在進行課題設計的時候,難免會有一些格外的因素,如時間被耽誤,在規(guī)定的時間中無法完成相應的任務;有問題存在的時候,老師也恰巧也有事情,問題無法與時解決等一系列問題,都是要考慮在的。再有就是,最害怕在做系統(tǒng)的中途遇到系統(tǒng)崩潰而東西又無法保存;或者是東西全部做好之后,忘記了備份,而更為不巧的是以染上了病毒,而致使幾個月的辛苦付之東流。這些是容易忽視的也是最容易出現(xiàn)的情況。所以要在設計的時候做足這方面的準備,不讓那種情況發(fā)生。2
22、.3.3 分析結論通過上面簡要的分析,最后做出的結論是:方案可以按照時間要求、保證質量的基礎上運用MyEclipse與SQL Server 2000 數(shù)據庫進行系統(tǒng)的開發(fā)。2.4 運行環(huán)境操作系統(tǒng):windows2000server中文版、windows 2003 Server或者Windows XP Sp3數(shù)據庫:SQL Server 2000 中文個人版開發(fā)工具:MyEclipse 7.1硬件配置:CPU 1.7GHz以上,存512MB以上3 概要設計3.1 框架設計本系統(tǒng)總體框架如圖3-1所示。(此圖重畫,TCP和UDP改為黑體字)圖3-1系統(tǒng)總體框架圖3.2 拓撲結構系統(tǒng)的拓撲結構如圖
23、3-2所示。S1S3S2C1C2C3客戶端服務器星型結構服務器服務器對等結構模式一S1S3S2C1C2C3客戶端服務器星型結構服務器服務器對等結構客戶端客戶機對等結構模式二CS服務器客戶端客戶端客戶端連接客戶端服務器連接服務器服務器連接圖3-2 系統(tǒng)的拓撲結構圖現(xiàn)在不少即時通訊系統(tǒng)服務的部拓撲中采用模式一;也有極其個別系統(tǒng)在即時通訊服務上面采用模式二(例如,騰訊的 服務中的即時通訊服務,發(fā)信者首先考慮直接與即時收信箱進行通訊,如果發(fā)現(xiàn)直接通訊超時,會轉為使用服務器中轉完成通訊)。模式一是一種非常成熟的模式,大多數(shù)TCP/IP應用系統(tǒng),例如SMTP服務、DNS服務、WWW服務等都是使用這種模式。
24、模式二對于模式一是一個技術上的修正,雖然這個修正帶來了新的問題,但是其實用性是不可質疑的;J 正是實用模式二作為服務模式。J 的服務是由服務器構成的;J 中每個實體都由一個寄主服務器管理。個體必須向服務器注冊,注冊后就有可以控制的發(fā)信者和即時收件箱。發(fā)信者是獨立于即時通訊服務外的實體,而即時收信箱則存在于寄主服務器中。J 的通訊系統(tǒng)中只有存在發(fā)送者和接收者兩類實體。注冊后的用戶必須在服務器上建立登記表,才能知道其他用戶的存在,與其他用戶進行交流。1) TCP協(xié)議TCP和UDP是TCP/IP協(xié)議族的兩個主要的傳輸協(xié)議,TCP是面向連接的,UDP是面向無連接的,而實際上他們最大的區(qū)別在于為應用協(xié)議
25、提供不同的服務,TCP協(xié)議為應用程序提供點到點的通信:建立可靠的連接。如果有故障發(fā)生,阻礙分組到達遠程系統(tǒng),或者服務器不接受連接,客戶都會得到通知:數(shù)據可靠的交付,故障而不能交付,發(fā)送方會得到通知;具有流控的傳輸;雙工的傳輸,單個TCP連接允許同時雙向傳送數(shù)據流模式,TCP從發(fā)送方到接收方發(fā)送沒有報文邊界的字節(jié)。2) UDP協(xié)議UDP為應用程序提供多對多的通信,UDP在進行通訊的應用的數(shù)量上面,具有更大的靈活性。多個應用可以向一個接收方發(fā)送報文,一個發(fā)送方向也可以向多個接收方發(fā)送報文。UDP還可以使用底層網絡的廣播和組播設施交付報文:UDP提供的是不可靠交付語義,報文可能丟失、重復或者失序,而
26、發(fā)送方是得不到通知的;缺乏流控制;報文模式,當有數(shù)據交付的時候,必須制定報文邊界。3) 傳輸層協(xié)議的選定由于TCP和UDP的語義與其不同,如果要考慮應用協(xié)議所要求的語義,設計者就不能不在面向連接和無連接的傳輸協(xié)議間作出選擇。利用面向連接的TCP協(xié)議,可以大大簡化應用協(xié)議的設計工作。由于UDP不提供可靠的交付,無連接傳輸要求應用協(xié)議提供可靠性,并在必要時,使用一種稱為自適應重傳的復雜技術。為現(xiàn)有的應用程序增加自適應重傳比較困難,它需要程序員具有相當?shù)貙I(yè)知識。選擇TCP一個很大的缺點就是,建立和中止連接的三次握手(TCP協(xié)議提供可靠的連接服務,采用三次握手建立一個連接。第一次握手:建立連接時,客
27、戶端發(fā)送syn包(syn=j)到服務器,并進入SYN_SEND狀態(tài),等待服務器確認;第二次握手:服務器收到syn包,必須確認客戶的SYN(ack=j+1),同時自己也發(fā)送一個SYN包(syn=k),即SYN+ACK包,此時服務器進入SYN_RECV狀態(tài); 第三次握手:客戶端收到服務器的SYNACK包,向服務器發(fā)送確認包ACK(ack=k+1),此包發(fā)送完畢,客戶端和服務器進入ESTABLISHED狀態(tài),完成三次握手。客戶端與服務器開始傳送數(shù)據),使TCP比起UDP開銷大。在考慮是用UDP還是用TCP作為域名服務系統(tǒng)的運輸層協(xié)議是,設計者往往陷入兩難的境地。一個理想的解決方案應該既能提供可靠的數(shù)
28、據傳輸,又不需要專門的建立和釋放連接,不需要報文的反段和重組,同時還能是兩端的空閑狀態(tài)所處的時間最短。TCP什么都好,只可惜他需要建立和釋放連接。還有一個嚴重的問題就是TCP在空閑的連接上根本不發(fā)送任何分組。假設客戶與某個服務器建立了連接,并與之交換請求和響應,接著便崩潰了。因為客戶已經崩潰了,它就不會再發(fā)送任何請求了,然而,服務器到目前為止對它收到的所有請求都進行了響應,它便不會再向客戶發(fā)送更多的數(shù)據。這種情況下,服務器擁有分配給該連接的數(shù)據結構(包括緩存空間),這些資源不能被重新分配。服務器是設計成始終運行的。如果不斷有客戶崩潰,服務器就會耗盡資源(如套接字、緩存空間、TCP連接)從而中止
29、運行。3.3 功能設計系統(tǒng)功能設計,如圖3-3所示??蛻舳擞脩糇杂脩舻卿浄纸M管理好友管理查詢用戶即時通訊聊天記錄服務器登錄服務查找好友在線服務端口分配圖3-3 系統(tǒng)功能設計圖3.2.1 用戶注冊模塊用戶需要正確填寫自己的用戶名、密碼、真實、性別、個性簽名等信息,如果用戶名合法且未被占用,則可以注冊成功。用戶注冊如圖3-4所示。(重畫圖34,35,36,37,38,39,41,42,43,方框里的字體要清楚)圖3-4 用戶注冊流程圖3.2.2 用戶登錄模塊用戶需要正確填寫自己的用戶名、密碼,如果驗證成功,則可以進入到J 即時通訊系統(tǒng)主面板,與在線好友進行即時通訊。用戶登錄如圖3-5所示。圖3-
30、5 用戶登錄流程圖3.2.3分組管理模塊分組管理模塊包括對分組的添加與刪除。添加分組過程中,分組不能為空并且不能有重復的分組。刪除分組過程中,只要選定要刪除的分組,即可刪除成功。分組管理如圖3-6所示。圖3-6 分組管理流程圖3.2.4 好友管理模塊好友管理模塊包括對好友的添加與刪除。添加好友過程中,好友不能為空,不能加自己為好友,要添加的好友必須存在并且不能有重復的好友。刪除好友過程中,只要選定所屬分組下的相應好友,即可刪除成功。好友管理如圖3-7所示。圖3-7 好友管理流程圖3.2.5 查詢用戶模塊查詢用戶模塊列出了除了自己的所有用戶的基本信息包括是否在線,用戶可以根據需要加為好友并進行通
31、訊,對于在線狀態(tài)的好友可以進行在線交流。查詢用戶如圖3-8所示。圖3-8 查詢用戶流程圖3.2.6 即時通訊模塊即時通訊模塊是本系統(tǒng)最關鍵的環(huán)節(jié)與目的所在。用戶可以選擇分組中的在線好友進行即時通訊,并且當交流完畢時自動保存聊天記錄。即時通訊如圖3-9所示。圖3-9 即時通訊流程圖3.2.7 聊天記錄模塊聊天記錄模塊主要記錄了與相應好友的所有聊天容,可以方便的瀏覽一些重要信息和談論話題等。3.4 設計原則與一般要求參照各模塊的功能與具體的特點,設計的整個即時通訊系統(tǒng)應達到以下目的:(1)穩(wěn)定性。整個系統(tǒng)應能穩(wěn)定運行,硬件配置的局部改變不會影響整體的正常運行,其它系統(tǒng)的差錯不會導致即時通訊系統(tǒng)無確
32、運作。(2)準確性。系用戶按操作要求操作產生的數(shù)據與數(shù)據庫產生的變化應嚴格保持一致,杜絕錯誤、異常等情況的出現(xiàn)。(3)安全性。所有數(shù)據定時備份,錯誤的出現(xiàn)由系統(tǒng)自動記錄備份文件,以備查驗,避免用戶誤操作而造成不必要的損失。(4)易使用性。即時通訊系統(tǒng)的界面與操作人員的交互性好,用Client/Server(客戶端/服務器)結構。4 系統(tǒng)設計4.1 模塊設計功能模塊設計如表4-1所示:表4-1 功能模塊設計表功能模塊用戶注冊模塊1.用戶注冊用戶登錄模塊1.用戶登錄分組管理模塊1.添加分組2.刪除分組好友管理模塊1.添加好友2.刪除好友 查詢用戶模塊1.查詢用戶即時通訊模塊1.即時通訊聊天記錄模塊
33、1.查看聊天記錄4.2 即時通訊系統(tǒng)關系型數(shù)據庫的實現(xiàn)Microsoft SQL Server 2000 是一個高性能的客戶端/服務器結構的關系數(shù)據庫管理系統(tǒng)(RDBMS)。SQL Server 2000是為支持高容量的事務處理(比如在線訂購錄入、存貨目錄、記賬或制造)以與數(shù)據倉庫和決策支持系統(tǒng)而設計的。它運行在Microsoft Windows NT4或Microsoft Windows 2000 Server上基于使用Intel處理器的網絡。也能夠為其他的Microsoft操作系統(tǒng)提供很多客戶端工具和網絡接口。由于SQL Server的開放結構,其他系統(tǒng)也能和它交互操作。使用它可以完成事務
34、處理、存儲和分析數(shù)據以與創(chuàng)建新的應用程序。其中SQL Server的RDBMS(Relational Database Management System,關系型數(shù)據庫管理系統(tǒng))負責維護數(shù)據庫中數(shù)據之間的關系,確保正確的存儲數(shù)據和不違反定義數(shù)據之間的規(guī)則,而且在系統(tǒng)發(fā)生錯誤時將所有數(shù)據恢復到某個已知的、具備一致性的檢查點上。SQL Server 2000就是關系數(shù)據庫開發(fā)工具,數(shù)據庫能匯集各種信息以供查詢、存儲和檢索。SQL Server 2000 的優(yōu)點在于它能使用數(shù)據表示圖或自定義窗體收集信息。數(shù)據庫在一個信息管理系統(tǒng)中占有非常重要的地位,數(shù)據庫結構設計的好壞將直接對應用系統(tǒng)的效率以與實現(xiàn)
35、的效果產生影響。合理的數(shù)據庫結構設計可以提高數(shù)據存儲的效率,報填數(shù)據的完整和一致。另外,合理的數(shù)據庫結構將非常有利于程序的實現(xiàn)。設計數(shù)據可系統(tǒng)是應該首先充分了解用戶各個方面的要求,包括現(xiàn)有的以與將來可能增加的要求。4.2.1 數(shù)據庫分析即時通訊系統(tǒng)需求包括對用戶信息、分組信息、好友信息等各方面信息的管理,這些信息都需要保存在數(shù)據庫中,因此需要建立一些相應的表結構來存儲這些相應的數(shù)據。針對這些情況,我建立了以下若干表來存儲相應的信息:表名:用戶表,分組表,好友表等。1) 用戶表:包括的數(shù)據項有:用戶名、密碼、真實、性別、個性簽名、是否在線、登錄IP、綁定端口等。2) 分組表:包括的數(shù)據項有:分組
36、名稱、用戶等。3) 好友表:包括的數(shù)據項有:好友名稱、所在分組、用戶等。4.2.2 數(shù)據庫概念設計根據前面的需求分析和概要設計規(guī)劃出本系統(tǒng)所使用的實體對象,分別為:用戶實體、分組實體、好友實體。下面將給出幾個關鍵實體的E-R圖。(1) 用戶實體用戶實體包括用戶名、密碼、真實、性別、個人簽名、是否在線、登錄IP、綁定端口等。其E-R圖如下所示。圖4-1 用戶實體E-R圖(2) 分組實體分組實體包括分組名稱、用戶等。其E-R圖如下所示。圖4-2 分組實體E-R圖(3) 好友實體好友實體包括好友名稱、所在分組,用戶等。其E-R圖如下所示。圖4-3 好友實體E-R圖4.2.3 數(shù)據庫邏輯結構設計根據上
37、面所做的總結,再參考系統(tǒng)的實際需要,表與邏輯結構如下圖所示:1) 用戶表users,如下所示。表4-2 用戶表字段名數(shù)據類型字段說明備注usernameVarchar(20)用戶名主鍵passwordvarchar(20)密碼不允許為空namevarchar(50)真實不允許為空sexvarchar(10)性別不允許為空signvarchar(512)個性簽名允許為空isonlineBit(1)是否在線不允許為空(默認0)loginIPvarchar(20)登錄IP允許為空bindportInt(4)綁定端口不允許為空(默認0)2) 分組表groups,如下所示。表4-3 分組表字段名數(shù)據類型
38、字段說明備注g_namevarchar(50)分組名稱主鍵Owner_groupvarchar(50)用戶主鍵3) 好友表friends,如下所示。表4-4 好友表字段名數(shù)據類型字段說明備注friendvarchar(50)好友名稱主鍵group_invarchar(50)所在分組主鍵owner_friendvarchar(50)用戶主鍵5 系統(tǒng)實現(xiàn)5.1 注冊模塊如果用戶名不存在,則可以使用此用戶名,然后輸入用戶的密碼、真實、性別個性簽名等成功注冊。注冊模塊如圖5-1所示。圖5-1 用戶注冊圖主要代碼實現(xiàn)如下:publicintVerify() /驗證用戶名是否存在String userna
39、me = txtUserName.getText().trim();UserItem ui = new UserItem();ui.setUsername(username);Protocal proVerifyUser = new Protocal(ProtocalNumber.VERIFYUSER2, "",ui);SendPacket sp = newSendPacket(proVerifyUser);int result = (Integer) sp.Send().intValue();return result;publicvoidactionPerformed(
40、ActionEvent e) /用戶注冊utton btnSource = (utton) e.getSource();if (btnSource = btnOK) int res = Verify();if (res = 0) regUser = new UserItem(username, password, name,sex, sign, "", false, 0);Protocal proAddUser = new Protocal(ProtocalNumber.ADDUSER,"", regUser);SendPacket sp = new S
41、endPacket(proAddUser);int result = (Integer) sp.Send().intValue();if (result !=0) JOptionPane.showMessageDialog(this, "注冊成功,請登陸!","注冊用戶", JOptionPane.INFORMATION_MESSAGE);new frmLogin();確認信息填寫無誤后,點擊注冊按鈕就可注冊成功5.2 登錄模塊本部分主要用于用戶的登錄,只有在注冊后才可以進入系統(tǒng),用戶登錄時將按照用戶名和密碼進行驗證,當輸入錯誤時會出現(xiàn)相應的提示,當用戶
42、名和密碼都正確時進入程序主界面,才能進行日常管理工作。該模塊的界面設計如圖5-3所示。圖5-3 登錄界面如果登錄身份驗證成功,則進入主界面如圖5-4所示:圖5-4 主界面如果用戶名或密碼錯誤則會提示,需要重新輸入。主要代碼實現(xiàn)如下:publicvoidactionPerformed(ActionEvent e) utton btnSource = (utton) e.getSource(); if (btnSource = btnLogin) int bindport = CommonData.GetBindPort();String loginIP = CommonData.GetLocal
43、IP();UserItem ui = newUserItem();ui.setUsername(username);ui.setPassword(password);ui.setBindport(bindport);ui.setLoginIP(loginIP);Protocal proVerifyUser = new Protocal(ProtocalNumber.VERIFYUSER,"", ui);SendPacket sp = new SendPacket(proVerifyUser);int result = (Integer) sp.Send().intValue
44、();if (result !=0) JOptionPane.showMessageDialog(this,"登錄成功!", "用戶登錄",JOptionPane.INFORMATION_MESSAGE);this.dispose();new FrmMain(ui.getUsername(); elseJOptionPane.showMessageDialog(this, "用戶名或密碼錯誤!", "用戶登錄",JOptionPane.INFORMATION_MESSAGE);this.txtUserName.se
45、tText("");this.txtPassword.setText("");5.4 好友管理模塊5.4.1 添加好友主要功能是添加已存在的用戶為好友以便進行通訊,如圖5-7所示。圖5-7 添加好友界面主要實現(xiàn)代碼如下:publicint Verify() /驗證用戶是否存在String username = jt.getText().trim();UserItem ui = new UserItem();ui.setUsername(username);Protocal proVerifyUser = new Protocal(ProtocalNumb
46、er.VERIFYUSER2, "",ui);SendPacket sp = new SendPacket(proVerifyUser);int result = (Integer) sp.Send().intValue();return result; publicvoid actionPerformed(ActionEvent e) /添加好友if (e.getSource() = btnok) friend = (String) jt.getText().trim();if (friend.equals("") JOptionPane.showMe
47、ssageDialog(this, "好友名稱不能為空!", "添加好友",JOptionPane.INFORMATION_MESSAGE);return;if (friend.equals(CommonData.currUser.getUsername() JOptionPane.showMessageDialog(this, "你不能加自己為好友!", "添加好友",JOptionPane.INFORMATION_MESSAGE);jt.setText("");return;int veri
48、fy = Verify();if (verify = 0) JOptionPane.showMessageDialog(this, "你要添加的好友不存在!", "添加好友",JOptionPane.INFORMATION_MESSAGE);jt.setText("");return; else ui = new UserItem();ui.setUsername(friend);fi = new FriendItem();fi.setFriend(ui);String g_name = (String) choice.getSele
49、ctedItem();fi.setGroup_in(g_name);fi.setOwner_friend(CommonData.currUser.getUsername();Protocal proaddfriend = new Protocal(ProtocalNumber.ADDFRIEND,CommonData.currUser.getUsername(), fi);SendPacket sp = new SendPacket(proaddfriend);int result = (Integer) sp.Send().intValue();if (result = 1) JOption
50、Pane.showMessageDialog(this, "此好友已添加過!", "添加好友",JOptionPane.INFORMATION_MESSAGE);jt.setText("");return;if (result = 0) JOptionPane.showMessageDialog(this, "添加好友成功!", "添加好友",JOptionPane.INFORMATION_MESSAGE);this.dispose();5.4.2 刪除好友主要功能是刪除相應分組下的對應好友主要
51、實現(xiàn)代碼如下:public void actionPerformed(ActionEvent e) /刪除好友if (e.getSource() = btnok) try group = choiceGroup.getSelectedItem().toString();friend = choiceFriend.getSelectedItem().toString();FriendItem fi = new FriendItem();fi.setOwner_friend(CommonData.currUser.getUsername();fi.setGroup_in(group); UserI
52、tem ui = new UserItem();ui.setUsername(friend);fi.setFriend(ui);Protocal proExit = new Protocal(ProtocalNumber.DELETEFRIEND,CommonData.currUser.getUsername(), fi);SendPacket sp = new SendPacket(proExit);int result = (Integer) sp.Send().intValue();if (result != 0) JOptionPane.showMessageDialog(this,
53、"刪除好友成功!", "刪除好友",JOptionPane.INFORMATION_MESSAGE);dispose();catch (Exception ee) JOptionPane.showMessageDialog(this, "你的分組或好友為空,無法刪除!", "刪除好友", JOptionPane.INFORMATION_MESSAGE);5.5 查詢用戶模塊主要功能是查詢當前用戶外的所有用戶基本信息(包括是否在線),如圖5-9所示。圖5-9 查詢用戶界面主要實現(xiàn)代碼為:public Vector&l
54、t;Object> Select() /查詢用戶ui=new UserItem(); ui.setUsername(CommonData.currUser.getUsername();Protocal proVerifyUser = new Protocal(ProtocalNumber.SELECTUSER, CommonData.currUser.getUsername(),ui);SendPacket sp = new SendPacket(proVerifyUser);Vector<Object> vv= (Vector<Object>)sp.Send()
55、;return vv;5.6 即時通訊模塊主要功能是在線用戶之間的即時通訊,如圖5-10所示。圖5-10 即時通訊界面主要實現(xiàn)代碼為:publicvoidactionPerformed(ActionEvent e) /即時通訊if (e.getSource() = send) try if (jt2.getText().equals("") JOptionPane.showMessageDialog(this, "發(fā)送容不能為空!", "J 聊天",JOptionPane.INFORMATION_MESSAGE);return;Use
56、rItem ui = new UserItem();ui.setUsername(uiTarget.getUsername();Protocal proFindUser = new Protocal(ProtocalNumber.FINDUSER, "",ui);SendPacket sp = new SendPacket(proFindUser);uiTarget = (UserItem) sp.Send();byte b = (CommonData.currUser.getUsername() + ":" + jt2.getText().trim().getBytes();InetAddress address = InetAddress.getByName(uiTarget.getLoginIP();DatagramPacket data_pack = new DatagramPacket(b, b.length,address, ui
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版墓地使用權轉售與墓園維護服務合同4篇
- 2025版園藝樹苗種植合作合同范本范文3篇
- 安徽省蕪湖市無為市2024-2025學年七年級上學期期末地理試題(含答案)
- 儀器儀表在智能娛樂與虛擬現(xiàn)實體驗中的應用考核試卷
- 小麥種植農業(yè)土地流轉研究考核試卷
- 二零二五年度木雕工藝研發(fā)與創(chuàng)新合作合同4篇
- 2025年受歡迎廣告協(xié)議指南大揭秘攻略
- 2025年化工品批發(fā)合同
- 2025年孕婦健身指導服務協(xié)議
- 2025年高端紙質信封印刷定制委托協(xié)議6篇
- 2025年上半年江蘇連云港灌云縣招聘“鄉(xiāng)村振興專干”16人易考易錯模擬試題(共500題)試卷后附參考答案
- DB3301T 0382-2022 公共資源交易開評標數(shù)字見證服務規(guī)范
- 人教版2024-2025學年八年級上學期數(shù)學期末壓軸題練習
- 江蘇省無錫市2023-2024學年八年級上學期期末數(shù)學試題(原卷版)
- 俄語版:中國文化概論之中國的傳統(tǒng)節(jié)日
- 2022年湖南省公務員錄用考試《申論》真題(縣鄉(xiāng)卷)及答案解析
- 婦科一病一品護理匯報
- 2024年全國統(tǒng)一高考數(shù)學試卷(新高考Ⅱ)含答案
- 移動商務內容運營(吳洪貴)任務四 引起受眾傳播內容要素的掌控
- 繪本《汪汪的生日派對》
- 助產護理畢業(yè)論文
評論
0/150
提交評論