版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
年4月19日c企業(yè)QQ系統(tǒng)設(shè)計(jì)報(bào)告文檔僅供參考企業(yè)QQ系統(tǒng)設(shè)計(jì)說(shuō)明書姓名:學(xué)號(hào):班級(jí):指導(dǎo)教師:完成日期:目錄TOC\o"1-3"\h\z20740第一章緒論 3161881.1企業(yè)QQ系統(tǒng)的開發(fā)背景 384161.2企業(yè)QQ系統(tǒng)的需求分析 319811.3企業(yè)QQ系統(tǒng)的開發(fā)環(huán)境 315798第二章設(shè)計(jì) 4292602.1設(shè)計(jì)內(nèi)容 402.2設(shè)計(jì)目的
045077第三章設(shè)計(jì)過(guò)程 579373.1數(shù)據(jù)庫(kù)和類庫(kù)的設(shè)計(jì) 5289113.2客戶端模塊設(shè)計(jì) 6208033.3服務(wù)器端控制臺(tái)設(shè)計(jì) 7237143.4主要代碼 826977第四章總結(jié) 10232324.1設(shè)計(jì)總結(jié) 1049214.2心得體會(huì) 10
第一章緒論1.1企業(yè)QQ系統(tǒng)的開發(fā)背景21世紀(jì)將是網(wǎng)絡(luò)化、信息化的世紀(jì),信息的融合已經(jīng)成為社會(huì)發(fā)展的主流方向。簡(jiǎn)易版企業(yè)QQ聊天系統(tǒng)將不斷與信息交流領(lǐng)域的系統(tǒng)相互集成和滲透,擴(kuò)展其自己的功能和應(yīng)用范圍,滿足未來(lái)話音,數(shù)據(jù)和視頻的多媒體應(yīng)用需要,使即時(shí)消息以更豐富的接入方法,更高的服務(wù)質(zhì)量,更友好的面貌呈現(xiàn)在世人的面前。近年來(lái),人們創(chuàng)業(yè)的激情愈發(fā)高漲,一些大大小小的公司如雨后春筍相繼創(chuàng)立,可公司員工之間的管理和交流卻成了一個(gè)問(wèn)題。傳統(tǒng)的面對(duì)面交流效率往往很低且不利于管理,企業(yè)通這樣類似于QQ的局域網(wǎng)連天工具便應(yīng)時(shí)而生。它能夠不用連接Internet,直接在局域網(wǎng)內(nèi)實(shí)現(xiàn)信息的發(fā)送。它主要適用于一些中、小型企業(yè)的內(nèi)部通信,能夠大大的提高職工的工作效率,是現(xiàn)代企業(yè)不可缺少的輔助工具。1.2企業(yè)QQ系統(tǒng)的需求分析本系統(tǒng)是為了滿足一些中小型企業(yè)內(nèi)部職工之間的交流,或是工作信息的傳遞的方便快捷而設(shè)計(jì)的。隨著中小型企業(yè)的不斷發(fā)展,在企業(yè)內(nèi)部實(shí)現(xiàn)局域網(wǎng)通信是必不可少的。企業(yè)QQ系統(tǒng)就是一個(gè)非常好的局域通信軟件,它能夠在職工不移動(dòng)位置的情況下進(jìn)行聊天、圖片發(fā)送、文件傳遞和視頻連接,還能夠隨時(shí)在網(wǎng)絡(luò)中進(jìn)行多人對(duì)話或網(wǎng)絡(luò)會(huì)議。這樣,能夠提高企業(yè)的工作效率,便于企業(yè)內(nèi)部職工的交流。1.3企業(yè)QQ系統(tǒng)的開發(fā)環(huán)境系統(tǒng)開發(fā)平臺(tái):MicrosoftVisualStudio。系統(tǒng)開發(fā)語(yǔ)言:C#。數(shù)據(jù)庫(kù)管理系統(tǒng)軟件:MicrosoftSQLServer。運(yùn)行平臺(tái):Windows7C#(C
sharp)是一種最新的、面向?qū)ο蟮木幊陶Z(yǔ)言,它使得程序員能夠快速地編寫各種基于Microsoft
.NET平臺(tái)的應(yīng)用程序。Microsoft
.NET提供了一系列的工具和服務(wù)來(lái)最大程度地開發(fā)、利用計(jì)算與通訊領(lǐng)域。C#面向?qū)ο蟮淖吭皆O(shè)計(jì)使它成為構(gòu)建各類組件的理想之選——無(wú)論是高級(jí)的商業(yè)對(duì)象還是系統(tǒng)級(jí)的應(yīng)用程序。使用簡(jiǎn)單的C#語(yǔ)言結(jié)構(gòu),這些組件能夠方便的轉(zhuǎn)化為XML
網(wǎng)絡(luò)服務(wù),從而使它們能夠由任何語(yǔ)言在任何操作系統(tǒng)上經(jīng)過(guò)Internet進(jìn)行調(diào)用。最重要的是,C#使得C++程序員能夠高效率地開發(fā)程序,而絕不損失C/C++原有的強(qiáng)大功能。因?yàn)檫@種繼承關(guān)系,C#與C/C++具有極大的相似性,熟悉類似語(yǔ)言的開發(fā)者能夠很快地轉(zhuǎn)向C#。在C#中,每個(gè)對(duì)象都自動(dòng)生成為一個(gè)COM對(duì)象。開發(fā)者不再需要顯式的實(shí)現(xiàn)IUnknown和其它COM接口.這些功能都是內(nèi)置的、類似的,C#能夠調(diào)用現(xiàn)有的COM對(duì)象,無(wú)論它是由什么語(yǔ)言編寫的。C#包含了一個(gè)特殊的功能:使程序能夠調(diào)用任何純API。在一段特別標(biāo)記的代碼中,開發(fā)者能夠使用指針和傳統(tǒng)C/C++特性,如手工的內(nèi)存管理和指針運(yùn)算。這是其相對(duì)于其它環(huán)境的極大優(yōu)勢(shì)。這意味著C#程序員能夠在原有的C/C++代碼的基礎(chǔ)上編寫程序,而不是徹底放棄那些代碼第二章設(shè)計(jì)2.1設(shè)計(jì)內(nèi)容企業(yè)QQ系統(tǒng)按如下過(guò)程完成通信:
客戶向服務(wù)器注冊(cè),告知服務(wù)器它在監(jiān)聽某主題;
(2)客戶注冊(cè)之后,向服務(wù)器發(fā)送消息;
(3)服務(wù)器再把消息發(fā)送給所有監(jiān)聽些主題的客戶。2.2設(shè)計(jì)目的
此次開發(fā)的簡(jiǎn)易版企業(yè)QQ聊天系統(tǒng)可作為個(gè)人的交流工具使用,通信的安全性不是很高,但要求信息的響應(yīng)速度要較快,讓用戶充分享受到網(wǎng)絡(luò)即時(shí)消息的方便和快捷。本聊天工具由服務(wù)器端程序和客戶端程序兩部分組成,整體采用JAVA平臺(tái)開發(fā),并使用SQL
Server管理數(shù)據(jù)庫(kù)數(shù)據(jù)。服務(wù)器是能夠監(jiān)聽和查看用戶的基本操作;客戶端程序面向?qū)嶋H用戶,它有必要的界面的按鈕,向用戶提供網(wǎng)絡(luò)即時(shí)消息的功能,
本聊天需包含如下基本功能:
1.客戶端:
新用戶注冊(cè);
(2)用戶登錄驗(yàn)證;(3)獲取好友列表并顯示好友狀態(tài)(在線/不在線);
(4)添加用戶好友;
(5)刪除用戶好友;
用戶與好友聊天(可查看聊天記錄);
(7)接收系統(tǒng)信息。
2.服務(wù)端:
(1)啟動(dòng)和關(guān)閉后臺(tái)服務(wù)器;
(2)查看客戶端登錄的相關(guān)信息(客戶端登陸時(shí)間/登陸IP);
(3)
向所有在線用戶發(fā)送系統(tǒng)消息。第三章設(shè)計(jì)過(guò)程3.1數(shù)據(jù)庫(kù)和類庫(kù)的設(shè)計(jì)在數(shù)據(jù)庫(kù)中,首先創(chuàng)立企業(yè)QQ數(shù)據(jù)庫(kù),然后根據(jù)數(shù)據(jù)庫(kù)的邏輯結(jié)構(gòu)分析創(chuàng)立的2張數(shù)據(jù)表。用戶表結(jié)構(gòu):列名數(shù)據(jù)類型允許為空說(shuō)明IdInt否主鍵、自增列LoginPwdvarchar(50)否用戶登錄密碼UserStatevarchar(50)否用戶狀態(tài)FriendshipPolicyIdInt否表示好友策略NichNameVarchar(50)否用戶昵稱FaceIdInt否頭像索引SexVarchar(50)否性別AgeInt否年齡NameVarchar(50)是真實(shí)姓名StarIdInt是外鍵BloodTypeIdInt是外鍵好友表結(jié)構(gòu):列名數(shù)據(jù)類型允許為空說(shuō)明IDInt否主鍵、自增HostIdInt否好友關(guān)系中主人號(hào)碼FriendIdInt否好友關(guān)系中好友號(hào)碼類庫(kù)集提供了使應(yīng)用程序能夠讀寫XML數(shù)據(jù)、在Internet上通信、訪問(wèn)數(shù)據(jù)庫(kù)等的代碼。所有的類庫(kù)都建立在一個(gè)基礎(chǔ)的類庫(kù)之上,它提供管理使用最為頻繁的數(shù)據(jù)類型(例如數(shù)值或文本字符串)的功能,以及諸如文件輸入/輸出等底層功能。3.2客戶端模塊設(shè)計(jì)客戶端即用戶使用的應(yīng)用程序端。用戶經(jīng)過(guò)該聊天軟件的客戶端來(lái)實(shí)現(xiàn)網(wǎng)上聊天的相關(guān)功能:注冊(cè)、登錄、添加好友、文字聊天、文件傳輸、語(yǔ)音聊天、視頻聊天等。注冊(cè)功能是提交用戶相關(guān)信息以及獲得一個(gè)屬于自己登錄該聊天軟件,系統(tǒng)的用戶ID號(hào);登錄功能是實(shí)現(xiàn)驗(yàn)證用戶信息與合法使用該聊天軟件系統(tǒng)的權(quán)限;添加好友是實(shí)現(xiàn)用戶之間好友添加的操作;添加好友成功后,就能夠與好友之間開始文字聊天、文件傳輸、語(yǔ)音聊天、視頻聊天等功能。第一次使用該系統(tǒng)時(shí),我們需要進(jìn)行用戶注冊(cè)。注冊(cè)界面注冊(cè)完成后,進(jìn)入登陸界面,進(jìn)行登陸登陸界面第一次使用系統(tǒng)的用戶經(jīng)過(guò)填寫個(gè)人信息來(lái)注冊(cè),服務(wù)器返回一個(gè)注冊(cè)ID號(hào)給注冊(cè)用戶,用來(lái)登錄。已經(jīng)注冊(cè)的用戶在登錄界面填寫完相關(guān)登錄信息,經(jīng)過(guò)服務(wù)器的驗(yàn)證后就能夠進(jìn)入客戶端界面。在線用戶在添加好友時(shí)能夠查看所要添加用戶的列表信息。當(dāng)對(duì)要添加的好友發(fā)送請(qǐng)求添加的信息后,由該好友驗(yàn)證是否經(jīng)過(guò)請(qǐng)求,同意后會(huì)向請(qǐng)求方發(fā)送同意添加的消息。當(dāng)請(qǐng)求方添加完成后,服務(wù)器端會(huì)把相關(guān)信息存入到好友表的數(shù)據(jù)庫(kù)中。完成以上操作以后,兩人即可進(jìn)行在線聊天。3.3服務(wù)器端控制臺(tái)設(shè)計(jì)主服務(wù)器實(shí)現(xiàn)了服務(wù)器的多線程,服務(wù)器端有一個(gè)進(jìn)程(或多個(gè)進(jìn)程)在指定的端口等待客戶的連接信息。一時(shí)連接成功,就能夠按設(shè)計(jì)的數(shù)據(jù)交換方法和格式進(jìn)行數(shù)據(jù)傳輸??蛻舳酥辉谛枰臅r(shí)候向服務(wù)端發(fā)出連接請(qǐng)求。主服務(wù)器類調(diào)用ServerThread類,而每個(gè)ServerThread實(shí)體就是一個(gè)單獨(dú)的線程,即對(duì)應(yīng)于客戶端連接請(qǐng)求響應(yīng)的線程。服務(wù)器為每個(gè)連接著的客戶建立一個(gè)線程,為了同時(shí)響應(yīng)多個(gè)客戶端,需設(shè)計(jì)一個(gè)主線程來(lái)啟動(dòng)服務(wù)器端的多線程。主線程與進(jìn)程結(jié)構(gòu)類似,它在獲得新連接時(shí)生成一個(gè)線程來(lái)處理這個(gè)這個(gè)連接。線程調(diào)度速度快,占用資源少,可共享進(jìn)程空間中的數(shù)據(jù),因此服務(wù)器的響應(yīng)速度較快,且I/O吞吐量較大。3.4主要代碼用戶注冊(cè)privateClassMsgInsertUser(ClassMsgmsg,System.Net.IPAddressIp,intPort){RegisterMsgregistermsg=(RegisterMsg)newClassSerializers().DeSerializeBinary(newMemoryStream(msg.Data));ClassOptionDataOptionData=newClassOptionData();MsgCommandSate=msg.msgCommand;StringUserName=registermsg.UserName;//注痢?冊(cè)á用?戶§的?名?稱?StringPassWord=registermsg.PassWord;//注痢?冊(cè)á用?戶§的?密ü碼?StringvIP=Ip.ToString();//注痢?冊(cè)á用?戶§的?IP地?址·//向ò數(shù)簓據(jù)Y表括?中D添?加ó注痢?冊(cè)á信?息¢OptionData.ExSQL("insertintotb_CurreneyUser(IP,Port,Name,PassWord,Sign)values('"+vIP+"',"+Port.ToString()+",'"+UserName+"','"+PassWord+"',"+Convert.ToString((int)(MsgCommand.Registered))+")");SqlDataReaderDataReader=OptionData.ExSQLReDr("Select*Fromtb_CurreneyUser");UpdateUser();//更ü新?用?戶§列表括?OptionData.Dispose();msg.msgCommand=MsgCommand.Registered;//用?戶§注痢?冊(cè)á結(jié)á束?命ü令?SendMsgToOne(Ip,Port,msg);//將?注痢?冊(cè)á命ü令?返う?回?給?注痢?冊(cè)á用?戶§returnmsg;}用戶登陸privatevoidUserLogin(ClassMsgmsg,System.Net.IPAddressIp,intPort,intState){RegisterMsgregistermsg=(RegisterMsg)newClassSerializers().DeSerializeBinary(newMemoryStream(msg.Data));ClassOptionDataOptionData=newClassOptionData();//創(chuàng)洹?建¨并¢引皔用?ClassOptionDataMsgCommandmsgState=msg.msgCommand;//獲?取?接ó收?消?息¢的?命ü令?StringUserName=registermsg.UserName;//登?錄?用?戶§名?稱?StringPassWord=registermsg.PassWord;//用?戶§密ü碼?StringvIP=Ip.ToString();//用?戶§IP地?址·SqlDataReaderDataReader=OptionData.ExSQLReDr("Select*Fromtb_CurreneyUserWhereName="+"'"+UserName+"'"+"andPassWord="+"'"+PassWord+"'");//在ú數(shù)簓據(jù)Y庫(kù)a中D通?過(guò)y用?戶§名?和í密ü碼?進(jìn)?行D查é找òDataReader.Read();//讀á取?查é找ò到?的?記?錄?stringID=Convert.ToString(DataReader.GetInt32(0));//獲?取?第臺(tái)?一?條?記?錄?中D的?ID字?段?值μif(DataReader.HasRows)//當(dāng)獺繢ataReader中D有瓺記?錄?信?息¢時(shí)骸?{//修T改?當(dāng)獺?前°記?錄?的?標(biāo)括?識(shí)?為a上?線?狀痢?態(tài)?OptionData.ExSQL("Updatetb_CurreneyUserSetSign="+Convert.ToString((int)(MsgCommand.Logined))+",IP="+"'"+vIP+"',Port="+"'"+Port.ToString()+"'"+"WhereID="+ID);msg.msgCommand=MsgCommand.Logined;//設(shè)Θ?置?為a上?線?命ü令?msg.SID=ID;//用?戶§ID值μSendMsgToOne(Ip,Port,msg);//將?消?息¢返う?回?給?發(fā)ぁ?送í用?戶§UpdateUserState(msg,Ip,Port);//更ü新?用?戶§在ú線?狀痢?態(tài)?}OptionData.Dispose();UpdateUser();//更ü新?用?戶§列表括?}
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年食堂承包經(jīng)營(yíng)員工勞動(dòng)權(quán)益保障協(xié)議3篇
- 2025年食堂蔬菜糧油智能化管理系統(tǒng)合作協(xié)議3篇
- 2025年度個(gè)人房產(chǎn)托管服務(wù)合同范本4篇
- 2025版高科技園區(qū)門衛(wèi)值班人員崗位聘用合同協(xié)議4篇
- 2025年度個(gè)人虛擬現(xiàn)實(shí)體驗(yàn)服務(wù)合同范本4篇
- 物業(yè)服務(wù)公司2025年度合同管理制度解讀6篇
- 個(gè)體損害和解合同格式(2024年版)版B版
- 2025年度生態(tài)園林蟲害生物防治技術(shù)合同范本3篇
- 2025年度數(shù)碼產(chǎn)品代銷合同范本
- 2025年食堂食堂食材采購(gòu)及加工配送協(xié)議3篇
- 割接方案的要點(diǎn)、難點(diǎn)及采取的相應(yīng)措施
- 2025年副護(hù)士長(zhǎng)競(jìng)聘演講稿(3篇)
- 2024年08月北京中信銀行北京分行社會(huì)招考(826)筆試歷年參考題庫(kù)附帶答案詳解
- 原發(fā)性腎病綜合征護(hù)理
- 2024年高考英語(yǔ)復(fù)習(xí)(新高考專用)完形填空之詞匯復(fù)現(xiàn)
- 【京東物流配送模式探析及發(fā)展對(duì)策探究開題報(bào)告文獻(xiàn)綜述4100字】
- 施工現(xiàn)場(chǎng)工程令
- 藥物經(jīng)濟(jì)學(xué)評(píng)價(jià)模型構(gòu)建
- Daniel-Defoe-Robinson-Crusoe-笛福和魯濱遜漂流記全英文PPT
- 第一章威爾遜公共行政管理理論
- 外科護(hù)理(高職護(hù)理專業(yè))PPT完整全套教學(xué)課件
評(píng)論
0/150
提交評(píng)論