版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 摘 要</b></p><p> 隨著網(wǎng)絡(luò)技術(shù)的不斷發(fā)展,網(wǎng)絡(luò)聊天技術(shù)正成為目前產(chǎn)業(yè)界和科研機(jī)構(gòu)密切關(guān)注的焦點(diǎn).基于網(wǎng)絡(luò)的聊天技術(shù)已成了近年來新興的聊天交流方式.網(wǎng)絡(luò)聊天是在20世紀(jì)90年代發(fā)展起來的,它是在原有的面對面等通過動態(tài)聲音為信息載體的基礎(chǔ)上,增加了非接觸式的通過靜態(tài)文字為載體的交流方式.其限制性比較低,避免了溝通上的一線制約因素;聊天系統(tǒng)就是提供了
2、這些服務(wù)的具有動態(tài)交互功能的管理信息系統(tǒng),它實(shí)現(xiàn)了一個網(wǎng)絡(luò)上的在線聊天;用戶可以在聊天信息系統(tǒng)并根據(jù)自己的喜好和性格進(jìn)行自己的交流方式和尋找朋友.這樣,使用戶足不出戶就可隨時隨地地與人交流,擺脫了傳統(tǒng)交流方式在時間和空間的局限性,以及傳統(tǒng)交流個人自身的因素的局限性,極大豐富了人們的網(wǎng)絡(luò)生活.</p><p> 隨著互聯(lián)網(wǎng)的迅速崛起,C/S結(jié)構(gòu)的系統(tǒng)可以在任何一臺的計(jì)算機(jī)上使用,系統(tǒng)的部署和維護(hù)只是在服務(wù)器上進(jìn)行
3、,這樣的模式既能減少管理的成本,更重要的是它能很方便的實(shí)現(xiàn)用戶與系統(tǒng)的交互,更快地響應(yīng)用戶信息交互請求,加之微軟C#編程語言的提出,眾所周知,C#在窗體應(yīng)用上的優(yōu)勢以及平臺的獨(dú)立性好、簡便的窗體生成為C/S的實(shí)現(xiàn)提供了很好的技術(shù)基礎(chǔ).</p><p> 由此,利用互聯(lián)網(wǎng)覆蓋面積廣的優(yōu)勢,建立一個基于C/S結(jié)構(gòu)的網(wǎng)絡(luò)聊天系統(tǒng),提供以聊天為主的網(wǎng)絡(luò)服務(wù),來滿足用戶根據(jù)自己的意愿和溝通需求及其方便程度的追求,豐富用戶
4、的網(wǎng)絡(luò)生活和日常交際手段,必將受到越來越多用戶的青睞.</p><p> 關(guān)鍵詞:網(wǎng)絡(luò)聊天;C#;互聯(lián)網(wǎng);C/S結(jié)構(gòu)</p><p><b> ABSTRACT</b></p><p> With the development of network technology network chat technology is b
5、ecome the industry and scientific research institutions close attention. Based on network chat technology in recent years has become the emerging chat communication. Network chat is in the 1990s, it was developed in the
6、original face to face for such information carrier by dynamic voice, on the basis of increased non-contact through the static text as the carrier type of communication. Its restrictive is lower, </p><
7、p> As the Internet's rapid rise, C/S structure of system can be in any one computer use, the system's deployment and maint enance just on file server, such a model can not only reduce the cost managemen
8、t, more important is it can e asily achieve user and system interaction, to respond more quickly to user information interaction request, together with Microsoft C # programming languages, as is known to all, put forwa
9、rd the application form on the C # the independence of the advantages and p</p><p> Thus, using the Internet to coverage area wide advantage, build a based on C/S structure of network chat system, and provi
10、de the network service mainly to chat to satisfy the users, according to his own will and communication needs and convenient degree of pursuit, rich user's network life and daily communication means, will gets more a
11、nd more users favor. </p><p> Keywords: online chat; C #; The Internet; C/S structure </p><p><b> 目 錄</b></p><p><b> 摘 要I</b></p><p> ABST
12、RACTi</p><p><b> 目 錄ii</b></p><p><b> 第1章 緒論1</b></p><p> 1.1 選題背景及意義1</p><p> 1.2網(wǎng)絡(luò)聊天簡介1</p><p> 1.3系統(tǒng)設(shè)計(jì)思想2</p>
13、<p> 1.4 可行性分析2</p><p> 1.5系統(tǒng)運(yùn)行環(huán)境2</p><p> 第2章 相關(guān)技術(shù)概述3</p><p> 2.1 .NET Framewok框架結(jié)構(gòu)概述3</p><p> 2.1.1 .NET Framework框架結(jié)構(gòu)簡介3</p><p> 2.1.2
14、.NET Framework三部分內(nèi)容介紹3</p><p> 2.2 C#概述5</p><p> 2.2.1 效率與安全性6</p><p> 2.2.2 C#編譯器Visual Studio6</p><p> 2.3 WINFORM簡介7</p><p> 2.3.1 WINFORM的特點(diǎn)
15、7</p><p> 2.4客戶端/服務(wù)器( Client/Server)結(jié)構(gòu)概述7</p><p> 2.4.1 C/S結(jié)構(gòu)簡介7</p><p> 2.4.2 C/S模式的優(yōu)點(diǎn)、缺點(diǎn)8</p><p> 2.5 SOCKET編程技術(shù)9</p><p> 2.6 SQL Server 2005概述
16、10</p><p> 2.7 ADO.NET技術(shù)10</p><p> 第3章 需求分析11</p><p> 3.1 系統(tǒng)需求分析11</p><p> 3.2 系統(tǒng)功能需求11</p><p> 3.3 數(shù)據(jù)處理需求12</p><p> 3.4 系統(tǒng)性能需求12&
17、lt;/p><p> 第4章 系統(tǒng)分析與設(shè)計(jì)13</p><p> 4.1 系統(tǒng)功能模塊設(shè)計(jì)13</p><p> 4.2 系統(tǒng)模塊詳細(xì)設(shè)計(jì)13</p><p> 4.2.1 客戶端功能模塊設(shè)計(jì)13</p><p> 4.2.2 服務(wù)器端功能模塊設(shè)計(jì)16</p><p> 4.
18、3 系統(tǒng)整體流程圖16</p><p> 第5章 數(shù)據(jù)庫設(shè)計(jì)19</p><p><b> 5.1 概述19</b></p><p> 5.2 數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(jì)19</p><p> 5.3 數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計(jì)20</p><p> 5.3.1 用戶信息實(shí)體屬性圖20<
19、;/p><p> 5.3.2 用戶好友關(guān)系信息實(shí)體屬性圖20</p><p> 5.4 數(shù)據(jù)表設(shè)計(jì)21</p><p> 5.5 創(chuàng)建數(shù)據(jù)的存儲過程21</p><p> 第6章 系統(tǒng)詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)22</p><p> 6.1 系統(tǒng)通用類設(shè)計(jì)23</p><p> 6.1.1
20、數(shù)據(jù)庫表結(jié)構(gòu)類設(shè)計(jì)23</p><p> 6.1.2 服務(wù)器端模塊數(shù)據(jù)庫表操作類設(shè)計(jì)23</p><p> 6.1.3 對數(shù)據(jù)庫操作的封裝24</p><p> 6.2 界面及功能設(shè)計(jì)24</p><p> 6.2.1 服務(wù)器主界面24</p><p> 6.2.2 客戶端界面25</p&g
21、t;<p> 6.3 系統(tǒng)實(shí)現(xiàn)過程中遇到的問題與解決32</p><p> 6.3.1 Socket套接字異常問題32</p><p> 6.3.2 多線程問題32</p><p> 第7章 結(jié)論與展望34</p><p><b> 7.1結(jié)論34</b></p><
22、p> 7.2不足之處及未來展望34</p><p><b> 參考文獻(xiàn)35</b></p><p> 致 謝錯誤!未定義書簽。</p><p><b> 第1章 緒論</b></p><p> 1.1 選題背景及意義</p><p> Interne
23、t是目前世界上最大的計(jì)算機(jī)互聯(lián)網(wǎng)絡(luò),它遍布全球,將世界各地各種規(guī)模的網(wǎng)絡(luò)連接成一個整體.作為Internet上一種先進(jìn)的,易于被人們所接受的信息檢索手段,World Wide Web(簡稱WWW)發(fā)展十分迅速,成為目前世界上最大的信息資源寶庫.如今,人們不僅可以在網(wǎng)上查詢自己需要的資源,而且可以通過網(wǎng)絡(luò)進(jìn)行實(shí)時的溝通.從實(shí)時性和有效性上都超過了用信件和 E—Mail,并且在費(fèi)用上要低于電話.因而各種聊天服務(wù)備受用戶青睞,在這方面的開發(fā)與
24、應(yīng)用也較多,聊天服務(wù)也成為互聯(lián)網(wǎng)提供的重要服務(wù)之一,因此,建立一個好的在線交流聊天系統(tǒng)十分重要.互聯(lián)網(wǎng)的大多數(shù)網(wǎng)站都建有聊天室,并且有專業(yè)聊天網(wǎng)站提供聊天服務(wù).然而QQ等聊天工具雖然方便、實(shí)用,但是,娛樂功能太多,有很多吸引人的娛樂功能,從一定程度上來說,是一種娛樂工具,不能作為用于作為即時通訊、文件共享的專用工具.目前,用于實(shí)現(xiàn)單一的即時通訊、文件共享的軟件實(shí)在太少,并且,它們中大部分都是絕對的C/S模式,對遠(yuǎn)程服務(wù)器有非常大的依賴性
25、,沒有徹底實(shí)現(xiàn)點(diǎn)對點(diǎn)的交流.在網(wǎng)絡(luò)越來越發(fā)達(dá)的今天,人們對網(wǎng)絡(luò)的依賴越來越多,越來越離不開網(wǎng)絡(luò),由此而產(chǎn)生</p><p><b> 1.2網(wǎng)絡(luò)聊天簡介</b></p><p> 網(wǎng)絡(luò)聊天,英文簡稱NC(Network chat ),指的是按照用戶的要求播放視頻.NC有很廣泛的含義,包含了娛樂、教育、商業(yè)等領(lǐng)域的多種應(yīng)用,如游戲聊天( Chat In Game)、
26、在線語音聊天(Online voice chat)、離線文件傳輸(Offline file transfer)和遠(yuǎn)程教學(xué)( Long Distance Learning)等.</p><p> 網(wǎng)絡(luò)聊天是在20世紀(jì)90年代發(fā)展起來的,它是在原有的面對面等通過動態(tài)聲音為信息載體的基礎(chǔ)上,增加了非接觸式的通過靜態(tài)文字為載體的交流方式.其限制性比較低,避免了溝通上的一線制約因素;聊天系統(tǒng)就是提供了這些服務(wù)的具有動態(tài)交
27、互功能的管理信息系統(tǒng),它實(shí)現(xiàn)了一個網(wǎng)絡(luò)上的在線聊天;用戶可以在聊天信息系統(tǒng)并根據(jù)自己的喜好和性格進(jìn)行自己的交流方式和尋找朋友.這樣,使用戶足不出戶就可隨時隨地地與人交流,擺脫了傳統(tǒng)交流方式在時間和空間的局限性,以及傳統(tǒng)交流個人自身的因素的局限性,極大豐富了人們的網(wǎng)絡(luò)生活.</p><p><b> 1.3系統(tǒng)設(shè)計(jì)思想</b></p><p> 聊天系統(tǒng)利用.Net
28、平臺的Winform技術(shù)和數(shù)據(jù)庫技術(shù),提供以文字聊天為中心的網(wǎng)絡(luò)文本傳輸服務(wù),系統(tǒng)采用C#作為編程語言技術(shù),結(jié)合C/S結(jié)構(gòu)模式,能動態(tài)實(shí)現(xiàn)與用戶的交互,滿足用戶添加好友和修改用戶信息等需求,以及后臺管理員對系統(tǒng)信息管理的需求.</p><p><b> 1.4 可行性分析</b></p><p> 計(jì)算機(jī)網(wǎng)絡(luò)作為一種先進(jìn)的信息傳輸媒體,有著信息傳送速度快、信息覆蓋
29、面廣、成本低的特點(diǎn).隨著信息技術(shù)的發(fā)展,利用C#技術(shù)結(jié)合數(shù)據(jù)庫技術(shù)來實(shí)現(xiàn)一個聊天系統(tǒng),提供以文字聊天為中心的網(wǎng)絡(luò)文本傳輸服務(wù),能更貼切的滿足用戶根據(jù)自己的意愿進(jìn)行無打擾的聊天的需求,也必將受到用戶的青睞.但是,開發(fā)任何一個基于計(jì)算機(jī)的系統(tǒng),都會受到時間和資源上的限制.因此,在開發(fā)系統(tǒng)前必須進(jìn)行可行性分析,以減少項(xiàng)目的開發(fā)風(fēng)險(xiǎn),避免人力、物力和財(cái)力的浪費(fèi).可行性研究的目的,就是用最小的代價(jià)在盡可能短的時間內(nèi)確定問題能否解決.對在聊天系統(tǒng)的
30、可行性分析如下:</p><p> 1、經(jīng)濟(jì)可行性分析:成本較低,系統(tǒng)建設(shè)不需要很大的投入,系統(tǒng)更新時也只需更新服務(wù)器端程序,方便維護(hù).</p><p> 2、技術(shù)可行性分析:系統(tǒng)采用.NET開發(fā)平臺,.NET Framework是.NET平臺的基本框架,具有強(qiáng)大的API,給系統(tǒng)奠定了技術(shù)基礎(chǔ).系統(tǒng)采用C#.NET技術(shù),結(jié)合C/S結(jié)構(gòu)模式,能夠方便實(shí)現(xiàn)用戶與系統(tǒng)的動態(tài)交互,以及方便信息
31、的維護(hù)等.</p><p> 3、運(yùn)行上可行性:本系統(tǒng)作為一個小型的聊天系統(tǒng),所耗費(fèi)的資源非常的小.</p><p> 綜上所述通過可行性分析認(rèn)為新系統(tǒng)的開發(fā)方案切實(shí)可行,可進(jìn)行開發(fā).</p><p><b> 1.5系統(tǒng)運(yùn)行環(huán)境</b></p><p> 系統(tǒng)開發(fā)環(huán)境:Microsoft Visual Stud
32、io 2005</p><p> 系統(tǒng)開發(fā)語言: C#</p><p> 運(yùn)行平臺:Windows7</p><p> 數(shù)據(jù)庫:SQL Server 2005</p><p> 第2章 相關(guān)技術(shù)概述</p><p> 2.1 .NET Framewok框架結(jié)構(gòu)概述</p><p>
33、2.1.1 .NET Framework框架結(jié)構(gòu)簡介</p><p> .NET Framework 是一個集成在 Windows 中的組件,它支持生成和運(yùn)行下一代應(yīng)用程序與 XML Web Services..NET Framework 旨在實(shí)現(xiàn)下列目標(biāo):</p><p> 提供一個一致的面向?qū)ο蟮木幊汰h(huán)境,而無論對象代碼是在本地存儲和執(zhí)行,還是在本地執(zhí)行但在 Internet 上分
34、布,或者是在遠(yuǎn)程執(zhí)行的.</p><p> 提供一個將軟件部署和版本控制沖突最小化的代碼執(zhí)行環(huán)境.</p><p> 提供一個可提高代碼(包括由未知的或不完全受信任的第三方創(chuàng)建的代碼)執(zhí)行安全性的代碼執(zhí)行環(huán)境.</p><p> 提供一個可消除腳本環(huán)境或解釋環(huán)境的性能問題的代碼執(zhí)行環(huán)境.</p><p> 使開發(fā)人員的經(jīng)驗(yàn)在面對類型大
35、不相同的應(yīng)用程序(如基于 Windows 的應(yīng)用程序和基于 Web 的應(yīng)用程序)時保持一致.</p><p> 按照工業(yè)標(biāo)準(zhǔn)生成所有通信,以確?;?.NET Framework 的代碼可與任何其他代碼集成.</p><p> .NET Framework 的目的就是要建立Web Services 以及因特網(wǎng)應(yīng)用程序的工作變的簡單,它就相當(dāng)于微軟Web Services 引擎.許多程序
36、設(shè)計(jì)師和使用者,非??释幸粋€完善而且透明清楚的基礎(chǔ)架構(gòu),來建立Web Services(因特網(wǎng)服務(wù))..NET Framework 就是為了這個需求而提供的基礎(chǔ)架構(gòu)..NETFramework 提供了應(yīng)用程序模型及關(guān)鍵技術(shù),讓開發(fā)人員容易以原有的技術(shù)來產(chǎn)生、布署,并可以繼續(xù)發(fā)展具有高安全、高穩(wěn)定,并具高延展的Web Services.對于.NET Framework 而言,所有的組件都可以成為Web Services,Web Serv
37、ices 只不過是另一種型態(tài)的組件罷了.微軟將COM(Component Object Model,組件對象模型)的優(yōu)點(diǎn)整合進(jìn)來,它可以不用像COM 那么嚴(yán)謹(jǐn)?shù)膩硭ㄦi兩個對象,.NET Framework 以松散的方式來栓鎖Web Services 這種型態(tài)的組件.這樣的結(jié)果讓開發(fā)人員非常容易的發(fā)展出強(qiáng)而有力的Web 服務(wù)組件,提高了整體的安全及可靠性,并且大大的增加系統(tǒng)的延展性.</p><p> 2.1.2
38、 .NET Framework三部分內(nèi)容介紹</p><p> .NET Framework 包括了三大部分:第一個部分是Common Language Runtime(CLR,公共語言運(yùn)行時),第二部分是共享對象類別庫(提供所有.NET 程序語言所需要的基本對象),第三個部分是重新以組件的方式寫成的ASP.NET.其中公共語言運(yùn)行時(CLR)和 .NET Framework 類庫是.NET Framework
39、的兩個主要組件..NET Framework 的類庫,是一個綜合性的面向?qū)ο蟮目芍赜妙愋图?,可以使用它開發(fā)多種應(yīng)用程序,這些應(yīng)用程序包括傳統(tǒng)的命令行或圖形用戶界面 (GUI) 應(yīng)用程序,也包括基于 ASP.NET 所提供的最新創(chuàng)新的應(yīng)用程序(如 Web 窗體和 XML Web Services).</p><p> Common Language Runtime </p><p>
40、Common Language Runtime(CLR,公共語言運(yùn)行時)架構(gòu)在操作系統(tǒng)的服務(wù)上,它是.NET Framework 的基礎(chǔ).它負(fù)責(zé)應(yīng)用程序?qū)嶋H的執(zhí)行,滿足所有的應(yīng)用程序的需求;例如內(nèi)存管理、處理安全問題、整合不同的程序語言等等.Runtime供了許多幫助程序?qū)懽鞯暮喕?,以及?yīng)用程序的部署并同時加強(qiáng)程序穩(wěn)定可靠的一些服務(wù).</p><p> Common Language Runtime結(jié)構(gòu)圖,如圖
41、2-1所示:</p><p> 圖2-1 Common Language Runtime結(jié)構(gòu)圖 想要執(zhí)行由某種特定程序語言所開發(fā)出來的程序,計(jì)算機(jī)內(nèi)部必需裝置這種特定程序語言的執(zhí)行時期(Runtime)組件才可以.為什么Runtime 組件如此重要?這是因?yàn)镽untime組件內(nèi)部有該種程序語言所需要的一些核心功能,例如提供該種語言所需要的基本函式及對象等等
42、;所以當(dāng)程序在執(zhí)行時會動態(tài)的連結(jié)到Runtime 組件,取得所需要的功能.但是不同的程序語言所需要的Runtime 不一樣,所以會造成程序設(shè)計(jì)師在開發(fā)時的困難.所以為了要解決上述的問題,.NET Framework 在發(fā)展時,設(shè)計(jì)了讓所有.NET 的程序語言共同使用的Runtime 組件,這個組件的名稱就叫做Common Language Runtime(CLR).CLR 是一個高效率的執(zhí)行引擎,程序代碼的執(zhí)行是由Runtime 所管理
43、,Runtime 負(fù)責(zé)的工作有產(chǎn)生對象、方法(methods)的呼叫等等,Runtime 也可以提供程序代碼一些額外的服務(wù).我</p><p> 們把要透過CLR 的控制才能執(zhí)行的程序代碼稱ManagedCode.</p><p><b> 共享類庫</b></p><p> .NET 提供了一個讓.NET 所有程序語言使用的共享對象類別
44、庫,這個對象類別庫提供了幾組統(tǒng)一、對象導(dǎo)向、結(jié)構(gòu)化以及可擴(kuò)充的對象類別庫,協(xié)助程序設(shè)計(jì)師快速的開發(fā)軟件.共享對象類別庫中提供了許多對象,包括集合、IO、數(shù)據(jù)型態(tài)等等,也提供一些對象類別可以存取操作系統(tǒng)服務(wù),例如繪圖、訊息、網(wǎng)絡(luò)、執(zhí)行緒與數(shù)據(jù)存取等等.程序設(shè)計(jì)師可以直接建立.NET 共享對象類別庫所提供的對象,也可以呼叫共享對象類別庫的功能,或者藉由繼承某個對象的功能來擴(kuò)充自己建立的對象. </p><p> 共
45、享類庫對象類別如圖2-2所示:</p><p> 圖2-2 共享類庫包含的對象類別</p><p> ASP.NET ASP.NET 是共享對象類別庫中的一員,ASP.NET 提供了一個Web 應(yīng)用程序模型.這個模型提供了一些窗體、控件及基礎(chǔ)架構(gòu),讓程序設(shè)計(jì)師簡單的建立Web 應(yīng)用程序.ASP.NET 提供了一些對應(yīng)HTML 元素(例如按鈕、清單盒等)的HTML
46、控件(HTML Control)以及功能更強(qiáng)的Web 控件(Web Controls);這些控件在客戶端執(zhí)行,然后在客戶端的瀏覽器以HTML 元素的方式顯示.這種HTML 控件在客戶端以對象導(dǎo)向的方式被程控,讓程序設(shè)計(jì)師享受到對象導(dǎo)向程序?qū)懽鞯膬?yōu)點(diǎn),簡化程序的復(fù)雜性. </p><p> ASP.NET結(jié)構(gòu)圖,如圖2-3所示: </p><p> 圖2-3 ASP.NET結(jié)構(gòu)<
47、;/p><p><b> 2.2 C#概述</b></p><p> C sharp(又被簡稱為"C#")是微軟公司在二OOO年六月發(fā)布的一種新的編程語言,并定于在微軟職業(yè)開發(fā)者論壇(PDC)上登臺亮相.C#是微軟公司研究員Anders Hejlsberg的最新成果.C#看起來與Java有著驚人的相似;它包括了諸如單一繼承,界面,與Java幾乎同樣
48、的語法,和編譯成中間代碼再運(yùn)行的過程.但是C#與Java有著明顯的不同,它借鑒了Delphi的一個特點(diǎn),與COM(組件對象模型)是直接集成的,而且它是微軟公司.NET windows網(wǎng)絡(luò)框架的主角.微軟c#語言定義主要是從C和C++繼承而來的,而且語言中的許多元素也反映了這一點(diǎn).C#在設(shè)計(jì)者從C++繼承的可選選項(xiàng)方面比Java要廣泛一些(比如說structs),它還增加了自己新的特點(diǎn)(比方說源代碼版本定義).但它還太不成熟,不可能擠垮J
49、ava、C#還需要進(jìn)化成一種開發(fā)者能夠接受和采用的語言.而微軟當(dāng)前為它的這種新語言大造聲勢也是值得注意的.</p><p> 2.2.1 效率與安全性</p><p> 新興的網(wǎng)絡(luò)經(jīng)濟(jì)迫使商務(wù)企業(yè)必須更加迅速的應(yīng)對競爭的威脅.開發(fā)者必須不斷縮短開發(fā)周期,不斷推出應(yīng)用程序的新版本,而不僅僅是開發(fā)一個“標(biāo)志性”的版本.C#在設(shè)計(jì)時就考慮了這些問題.它使開發(fā)者用更少的代碼做更多的事,同時也不
50、易出錯.支持現(xiàn)有的網(wǎng)絡(luò)編程新標(biāo)準(zhǔn)新的應(yīng)用程序開發(fā)模型意味著越來越多地解決方案依賴于新出現(xiàn)的網(wǎng)絡(luò)標(biāo)準(zhǔn),例如HTML,XML,SOAP等.現(xiàn)存的開發(fā)工具往往都是早于Internet出現(xiàn)的,或者是在我們所熟知的網(wǎng)絡(luò)還處于孕育期時出現(xiàn)的.所以,它們一般無法很好地支持最新的網(wǎng)絡(luò)技術(shù).C#程序員可以在Microsoft .NET平臺上事半功倍的構(gòu)建應(yīng)用程序的擴(kuò)展框架.C#包含了內(nèi)置的特性,使任何組件可以輕松轉(zhuǎn)化為XML網(wǎng)絡(luò)服務(wù),通過Internet
51、被任何操作系統(tǒng)上運(yùn)行的任何程序調(diào)用.更突出的是,XML網(wǎng)絡(luò)服務(wù)框架可以使現(xiàn)有的XML網(wǎng)絡(luò)服務(wù)對程序員來說就和C#對象一樣.這樣,程序員就可以方便地使用他們已有的面向?qū)ο蟮木幊碳记蓙黹_發(fā)利用現(xiàn)有的XML網(wǎng)絡(luò)服務(wù).還有一些精細(xì)的特性,使得C#成為一流的網(wǎng)絡(luò)編程工具.例如,XML正逐漸成為在網(wǎng)絡(luò)上傳輸結(jié)構(gòu)化數(shù)據(jù)的標(biāo)準(zhǔn).這種數(shù)據(jù)集合往往非常?。疄樘?lt;/p><p> 2.2.2 C#編譯器Visual Studio&l
52、t;/p><p> Visual Studio 是微軟公司推出的開發(fā)環(huán)境,Visual Studio 可以用來創(chuàng)建 Windows 平臺下的 Windows 應(yīng)用程序和網(wǎng)絡(luò)應(yīng)用程序,也可以用來創(chuàng)建網(wǎng)絡(luò)服務(wù)、智能設(shè)備應(yīng)用程序和 Office 插件.Visual Studio 提供了高級開發(fā)工具、調(diào)試功能、數(shù)據(jù)庫功能和創(chuàng)新功能,幫助在各種平臺上快速創(chuàng)建當(dāng)前最先進(jìn)的應(yīng)用程序.Visual Studio包括各種增強(qiáng)功能,例
53、如可視化設(shè)計(jì)器(使用 .NET Framework 3.5 加速開發(fā))、對 Web 開發(fā)工具的大量改進(jìn),以及能夠加速開發(fā)和處理所有類型數(shù)據(jù)的語言增強(qiáng)功能.Visual Studio為開發(fā)人員提供了所有相關(guān)的工具和框架支持,幫助創(chuàng)建引人注目的、令人印象深刻并支持 AJAX 的 Web 應(yīng)用程序.開發(fā)人員能夠利用這些豐富的客戶端和服務(wù)器端框架輕松構(gòu)建以客戶為中心的 Web 應(yīng)用程序,這些應(yīng)用程序可以集成任何后端數(shù)據(jù)提供程序、在任何當(dāng)前瀏覽器
54、內(nèi)運(yùn)行并完全訪問 ASP NET 應(yīng)用程序服務(wù)和 Microsoft 平臺.</p><p> 2.3 WINFORM簡介</p><p> Windows窗體也稱為WinForms,可以創(chuàng)建應(yīng)用程序的用戶界面,并使用任何一種.NET支持的語言編寫應(yīng)用程序的功能.WinForms應(yīng)用程序一般都有一個或者多個窗體提供用戶與應(yīng)用程序交互.窗體可包含文本框、標(biāo)簽、按鈕等控件.大型WinFor
55、ms應(yīng)用程序有許多窗體,一些用于獲取用戶輸入的數(shù)據(jù),一些用于向用戶顯示數(shù)據(jù),一些窗體會有變形、透明等其他效果甚至讓你看不出他的真實(shí)面目.</p><p> 2.3.1 WINFORM的特點(diǎn)</p><p> Windows窗體的一些重要特點(diǎn)如下:</p><p> 1.簡單強(qiáng)大:Windows窗體可用于設(shè)計(jì)窗體和可視控件,以創(chuàng)建豐富的基于Windows的應(yīng)用程
56、序.</p><p> 2.新的數(shù)據(jù)提供程序管理:數(shù)據(jù)提供程序管理提供易于連接OLEDB和ODBC數(shù)據(jù)源的數(shù)據(jù)控件,包括Microsoft SQL Server、Microsoft Access、Jet、DB2以及Oracle等.</p><p> 3.安全:Windows窗體充分利用公共語言運(yùn)行庫的安全特性.這就意味著,一切都可以通過Windows窗體來實(shí)現(xiàn),包括在瀏覽器中運(yùn)行的不可
57、信控件和用戶硬盤上安裝的完全可信的應(yīng)用程序.</p><p> 4.靈活的控件:Windows窗體提供了一套豐富的控件,并且開發(fā)人員可以定義自己有特色的新的控件.方便的數(shù)據(jù)顯示和操作:應(yīng)用程序開發(fā)中最常見的情形之一是在窗體上顯示數(shù)據(jù).Windows窗體對數(shù)據(jù)庫處理提供全面支持.可以訪問數(shù)據(jù)中的數(shù)據(jù),并在窗體上顯示和操作數(shù)據(jù). </p><p> 5.向?qū)В合蛴脩籼峁﹦?chuàng)建窗體、數(shù)據(jù)處理、
58、打包和部署等的分布指導(dǎo).</p><p> 2.4客戶端/服務(wù)器( Client/Server)結(jié)構(gòu)概述</p><p> 2.4.1 C/S結(jié)構(gòu)簡介</p><p> C/S(Client/Server)結(jié)構(gòu),即大家熟知的客戶機(jī)和服務(wù)器結(jié)構(gòu).它是軟件系統(tǒng)體系結(jié)構(gòu),通過它可以充分利用兩端硬件環(huán)境的優(yōu)勢,將任務(wù)合理分配到Client端和Server端來實(shí)現(xiàn),降低
59、了系統(tǒng)的通訊開銷.目前大多數(shù)應(yīng)用軟件系</p><p> 統(tǒng)都是Client/Server形式的兩層結(jié)構(gòu),由于現(xiàn)在的軟件應(yīng)用系統(tǒng)正在向分布式的Web應(yīng)用發(fā)展,Web和Client/Server應(yīng)用都可以進(jìn)行同樣的業(yè)務(wù)處理,應(yīng)用不同的模塊共享邏輯組件;因此,內(nèi)部的和外部的用戶都可以訪問新的和現(xiàn)有的應(yīng)用系統(tǒng),通過現(xiàn)有應(yīng)用系統(tǒng)中的邏輯可以擴(kuò)展出新的應(yīng)用系統(tǒng).這也就是目前應(yīng)用系統(tǒng)的發(fā)展方向.</p>&l
60、t;p> 傳統(tǒng)的C/S體系結(jié)構(gòu)雖然采用的是開放模式,但這只是系統(tǒng)開發(fā)一級的開放性,在特定的應(yīng)用中無論是Client端還是Server端都還需要特定的軟件支持.由于沒能提供用戶真正期望的開放環(huán)境,C/S結(jié)構(gòu)的軟件需要針對不同的操作系統(tǒng)系統(tǒng)開發(fā)不同版本的軟件,加之產(chǎn)品的更新?lián)Q代十分快,已經(jīng)很難適應(yīng)百臺電腦以上局域網(wǎng)用戶同時使用.而且代價(jià)高,效率低.如圖2-1和圖2-2所示:</p><p> 圖2-1 C/
61、S結(jié)構(gòu)圖</p><p> 圖2-2 客戶機(jī)/服務(wù)器通信結(jié)構(gòu)示圖</p><p> 2.4.2 C/S模式的優(yōu)點(diǎn)、缺點(diǎn)</p><p> ?。?)應(yīng)用服務(wù)器運(yùn)行數(shù)據(jù)負(fù)荷較輕</p><p> 最簡單的C/S體系結(jié)構(gòu)的數(shù)據(jù)庫應(yīng)用由兩部分組成,即客戶應(yīng)用程序和數(shù)據(jù)庫服務(wù)器程序.二者可分別稱為前臺程序與后臺程序.運(yùn)行數(shù)據(jù)庫服務(wù)器程序的機(jī)器,也
62、稱為應(yīng)用服務(wù)器.一旦服務(wù)器程序被啟動,就隨時等待響應(yīng)客戶程序發(fā)來的請求;客戶應(yīng)用程序運(yùn)行在用戶自己的電腦上,對應(yīng)于數(shù)據(jù)庫服務(wù)器,可稱為客戶電腦,當(dāng)需要對數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行任何操作時,客戶程序就自動地尋找服務(wù)器程序,并向其發(fā)出請求,服務(wù)器程序根據(jù)預(yù)定的規(guī)則作出應(yīng)答,送回結(jié)果,應(yīng)用服務(wù)器運(yùn)行數(shù)據(jù)負(fù)荷較輕.</p><p> ?。?)數(shù)據(jù)的儲存管理功能較為透明.</p><p> 在數(shù)據(jù)庫應(yīng)用
63、中,數(shù)據(jù)的儲存管理功能,是由服務(wù)器程序和客戶應(yīng)用程序分別獨(dú)立進(jìn)行的,前臺應(yīng)用可以違反的規(guī)則,并且通常把那些不同的(不管是已知還是未知的)運(yùn)行數(shù)據(jù),在服務(wù)器程序中不集中實(shí)現(xiàn),例如訪問者的權(quán)限,編號可以重復(fù)、必須有客戶才能建立定單這樣的規(guī)則.所有這些,對于工作在前臺程序上的最終用戶,是“透明”的,他們無須過問(通常也無法干涉)背后的過程,就可以完成自己的一切工作.在客戶服務(wù)器架構(gòu)的應(yīng)用中,前臺程序不是非常“瘦小”,麻煩的事情都交給了服務(wù)器和
64、網(wǎng)絡(luò).在C/S體系的下,數(shù)據(jù)庫不能真正成為公共、專業(yè)化的倉庫,它受到獨(dú)立的專門管理.</p><p> (3)C/S架構(gòu)的劣勢是高昂的維護(hù)成本且投資大.</p><p> 首先,采用C/S架構(gòu),要選擇適當(dāng)?shù)臄?shù)據(jù)庫平臺來實(shí)現(xiàn)數(shù)據(jù)庫數(shù)據(jù)的真正“統(tǒng)一”,使分布于兩地的數(shù)據(jù)同步完全交由數(shù)據(jù)庫系統(tǒng)去管理,但邏輯上兩地的操作者要直接訪問同一個數(shù)據(jù)庫才能有效實(shí)現(xiàn),有這樣一些問題,如果需要建立“實(shí)時”
65、的數(shù)據(jù)同步,就必須在兩地間建立實(shí)時的通訊連接,保持兩地的數(shù)據(jù)庫服務(wù)器在線運(yùn)行,網(wǎng)絡(luò)管理工作人員既要對服務(wù)器維護(hù)管理,又要對客戶端維護(hù)和管理,這需要高昂的投資和復(fù)雜的技術(shù)支持,維護(hù)成本很高,維護(hù)任務(wù)量大.</p><p> 其次,傳統(tǒng)的C/S結(jié)構(gòu)的軟件需要針對不同的操作系統(tǒng)系統(tǒng)開發(fā)不同版本的軟件,由于產(chǎn)品的更新?lián)Q代十分快,代價(jià)高和低效率已經(jīng)不適應(yīng)工作需要.在JAVA這樣的跨平臺語言出現(xiàn)之后,B/S架構(gòu)更是猛烈沖擊
66、C/S,并對其形成威脅和挑戰(zhàn).</p><p> 2.5 SOCKET編程技術(shù)</p><p> Microsoft.Net Framework為應(yīng)用程序訪問Internet提供了分層的、可擴(kuò)展的以及受管轄的網(wǎng)絡(luò)服務(wù),其名字空間System.Net和System.Net.Sockets包含豐富的類可以開發(fā)多種網(wǎng)絡(luò)應(yīng)用程序..Net類采用的分層結(jié)構(gòu)允許應(yīng)用程序在不同的控制級別上訪問網(wǎng)絡(luò),
67、開發(fā)人員可以根據(jù)需要選擇針對不同的級別編制程序,這些級別幾乎囊括了Internet的所有需要--從socket套接字到普通的請求/響應(yīng),更重要的是,這種分層是可以擴(kuò)展的,能夠適應(yīng)Internet不斷擴(kuò)展的需要.</p><p> 拋開ISO/OSI模型的7層構(gòu)架,單從TCP/IP模型上的邏輯層面上看,.Net類可以視為包含3個層次:請求/響應(yīng)層、應(yīng)用協(xié)議層、傳輸層.WebReqeust和WebResponse
68、代表了請求/響應(yīng)層,支持Http、Tcp和Udp的類組成了應(yīng)用協(xié)議層,而Socket類處于傳輸層.</p><p> 傳輸層位于這個結(jié)構(gòu)的最底層,當(dāng)其上面的應(yīng)用協(xié)議層和請求/響應(yīng)層不能滿足應(yīng)用程序的特殊需要時,就需要使用這一層進(jìn)行Socket套接字編程.</p><p> 而在.Net中,System.Net.Sockets 命名空間為需要嚴(yán)密控制網(wǎng)絡(luò)訪問的開發(fā)人員提供了 Window
69、s Sockets (Winsock) 接口的托管實(shí)現(xiàn).System.Net 命名空間中的所有其他網(wǎng)絡(luò)訪問類都建立在該套接字Socket實(shí)現(xiàn)之上,如TCPClient、TCPListener 和 UDPClient 類封裝有關(guān)創(chuàng)建到 Internet 的 TCP 和 UDP 連接的詳細(xì)信息;NetworkStream類則提供用于網(wǎng)絡(luò)訪問的基礎(chǔ)數(shù)據(jù)流等,常見的許多Internet服務(wù)都可以見到Socket的蹤影,如Telnet、Http、
70、Email、Echo等,這些服務(wù)盡管通訊協(xié)議Protocol的定義不同,但是其基礎(chǔ)的傳輸都是采用的Socket.</p><p> 其實(shí),Socket可以象流Stream一樣被視為一個數(shù)據(jù)通道,這個通道架設(shè)在應(yīng)用程序端(客戶端)和遠(yuǎn)程服務(wù)器端之間,而后,數(shù)據(jù)的讀取(接收)和寫入(發(fā)送)均針對這個通道來進(jìn)行.</p><p> 可見,在應(yīng)用程序端或者服務(wù)器端創(chuàng)建了Socket對象之后,就
71、可以使用Send/SentTo方法將數(shù)據(jù)發(fā)送到連接的Socket,或者使用Receive/ReceiveFrom方法接收來自連接Socket的數(shù)據(jù);針對Socket編程,.NET 框架的 Socket 類是 Winsock32 API 提供的套接字服務(wù)的托管代碼版本.其中為實(shí)現(xiàn)網(wǎng)絡(luò)編程提供了大量的方法,大多數(shù)情況下,Socket 類方法只是將數(shù)據(jù)封送到它們的本機(jī) Win32 副本中并處理任何必要的安全檢查.</p><
72、;p> 2.6 SQL Server 2005概述</p><p> SQL Server 是一個關(guān)系數(shù)據(jù)庫管理系統(tǒng).SQL Server 2005 的特性有:</p><p> 1.Internet 集成.SQL Server 2005 數(shù)據(jù)庫引擎提供完整的XML 支持.它還具有構(gòu)成最大的Web 站點(diǎn)的數(shù)據(jù)存儲組件所需的可伸縮性、可用性和安全功能.SQL Server 200
73、5 程序設(shè)計(jì)模型與 Windows DNA 構(gòu)架集成,用以開發(fā) Web 應(yīng)用程序,并且SQL Server 2005 支持 English Query 和 Microsoft 搜索服務(wù)等功能,在Web 應(yīng)用程序中包含了用戶友好的查詢和強(qiáng)大的搜索功能. </p><p> 2.可伸縮性和可用性.同一個數(shù)據(jù)庫引擎可以在不同的平臺上使用,從運(yùn)行 Microsoft Windows® 98 的便攜式電腦
74、,到運(yùn)行 Microsoft Windows 2005 數(shù)據(jù)中心版的大型多處理器服務(wù)器.SQL Server 2005企業(yè)版支持聯(lián)合服務(wù)器、索引視圖和大型內(nèi)存支持等功能,使其得以升級到最大 Web 站點(diǎn)所需的性能級別. </p><p> 3.企業(yè)級數(shù)據(jù)庫功能.SQL Server 2005關(guān)系數(shù)據(jù)庫引擎支持當(dāng)今苛刻的數(shù)據(jù)處理環(huán)境所需的功能.數(shù)據(jù)庫引擎充分保護(hù)數(shù)據(jù)完整性,同時將管理上千個并發(fā)修改數(shù)據(jù)庫的用戶的開
75、銷減到最小.SQL Server 2005 分布式查詢使您得以引用來自不同數(shù)據(jù)源的數(shù)據(jù),就好象這些數(shù)據(jù)是 SQL Server 2005 數(shù)據(jù)庫的一部分,同時分布式事務(wù)支持充分保護(hù)任何分布式數(shù)據(jù)更新的完整性.復(fù)制同樣使您得以維護(hù)多個數(shù)據(jù)復(fù)本,同時確保單獨(dú)的數(shù)據(jù)復(fù)本保持同步.可將一組數(shù)據(jù)復(fù)制到多個移動的脫接用戶,使這些用戶自主地工作,然后將他們所做的修改合并回發(fā)布服務(wù)器. </p><p> 4.易于安裝、部署和
76、使用. SQL Server 2005 中包括一系列管理和開發(fā)工具,這些工具可改進(jìn)在多個站點(diǎn)上安裝、部署、管理和使用 SQL Server 的過程.SQL Server 2005 還支持基于標(biāo)準(zhǔn)的、與 Windows DNA 集成的程序設(shè)計(jì)模型,使 SQL Server 數(shù)據(jù)庫和數(shù)據(jù)倉庫的使用成為生成強(qiáng)大的可伸縮系統(tǒng)的無縫部分.這些功能使您得以快速交付 SQL Server 應(yīng)用程序,使客戶只需最少的安裝和管理開銷即可實(shí)現(xiàn)這些應(yīng)用程序.
77、</p><p> 2.7 ADO.NET技術(shù)</p><p> ADO.NET是在.NET Framework平臺中負(fù)責(zé)數(shù)據(jù)存儲的對象.ADO.NET是Active Data Objects2.6(ADO)的后續(xù)版本.ADO.NET的主要目的是可以在.NET Framework中更容易的創(chuàng)建分布式的數(shù)據(jù)共享的應(yīng)用程序.ADO.NET建立在如XML的業(yè)界的基礎(chǔ)之上,就像ADO,它提供了
78、一個數(shù)據(jù)訪問接口,以便和OLE DB兼容的數(shù)據(jù)源進(jìn)行通信,如SQL Server或Oracle.應(yīng)用程序可以使用ADO.NET連接這些數(shù)據(jù)源,并檢索,處理和更新數(shù)據(jù);使用ADO.NET最重要的理由是可以獲取一個真正斷開連接的數(shù)據(jù)體系結(jié)構(gòu)和XML的緊密集成和一個通用的數(shù)據(jù)表示法,可以將各種不同數(shù)據(jù)源中的數(shù)據(jù)組合起來,并優(yōu)化了和數(shù)據(jù)庫交互的功能,同樣ADO.NET和NET.Framework的其它部分緊密的集成在一起,并充分利用NET.Fr
79、amework中所有對象的層結(jié)構(gòu)及設(shè)計(jì)模式.ADO.NET建立在ADO的基礎(chǔ)之上,而且為數(shù)據(jù)訪問工具集提供了許多工具.</p><p><b> 第3章 需求分析</b></p><p> 3.1 系統(tǒng)需求分析</p><p> 為了開發(fā)出真正滿足用戶需求的軟件產(chǎn)品,首先必須知道用戶的需求.對軟件需求的深入理解是軟件開發(fā)工作獲得成功的前提
80、條件,不論我們把設(shè)計(jì)和編碼工作做得如何出色,不能真正滿足用戶需求的系統(tǒng)只會令用戶失望,給開發(fā)者帶來煩惱.</p><p> 網(wǎng)絡(luò)聊天的出現(xiàn),最初是源于人們對遠(yuǎn)程通信、遠(yuǎn)程幫助的需求發(fā)展到現(xiàn)在的遠(yuǎn)程群聊、遠(yuǎn)程教育、遠(yuǎn)程控制以及語音聊天和視屏聊天.在傳統(tǒng)的聊天中,要求人們面多面的聊天近距離的的溝通.雖然可以通過電話進(jìn)行遠(yuǎn)程沒接觸式的聊天,但是這種聊天費(fèi)用高昂,對于對身體的健康也有一定的影響而且電話聊天對于偏遠(yuǎn)地區(qū)效
81、果并不好,在當(dāng)今如此快節(jié)奏的生活中,在高速發(fā)展的信息經(jīng)濟(jì)中,用戶沒能在恰當(dāng)?shù)臅r間通過交流接受到自己有用的信息是常有發(fā)生的事情.這對于用戶的日常生活會產(chǎn)生極大影響,用戶希望可以根據(jù)自己的時間和安排進(jìn)行方便的信息交換,不必遵守傳統(tǒng)的聊天時間機(jī)制,可以隨時隨地的聯(lián)系、表述自己的想法與朋友進(jìn)行感情的交流.并且隨著網(wǎng)絡(luò)技術(shù)的不斷發(fā)展,人們越來越習(xí)慣于利用網(wǎng)絡(luò)來實(shí)現(xiàn)所需的服務(wù),網(wǎng)絡(luò)信息經(jīng)濟(jì)時代的來臨,因此,建立一個基于網(wǎng)絡(luò)的聊天系統(tǒng),以其不受時間與
82、空間的限制,向用戶提供以文本信息傳輸為中心的服務(wù),動態(tài)地實(shí)現(xiàn)與用戶間的信息交互,必能滿足廣大用戶的需求,該系統(tǒng)主要分為兩部分:客戶端和服務(wù)器端兩部分.系統(tǒng)所要實(shí)現(xiàn)的功能主要是方便用戶進(jìn)行網(wǎng)絡(luò)聊天.</p><p> 3.2 系統(tǒng)功能需求</p><p> 初步將在聊天系統(tǒng)分為兩個模塊:客戶端模塊及服務(wù)器模塊;</p><p><b> 客戶端功能包括
83、:</b></p><p> 用戶登錄:建立與服務(wù)器的連接并登陸,能顯示登陸錯誤信息,以及配置登陸的服務(wù)器IP地址和端口號.</p><p> 用戶注冊:連接本地?cái)?shù)據(jù)庫,注冊用戶號碼,并保存該用戶,同時將信息返回給客戶端.</p><p> 聊天功能:與好友進(jìn)行聊天.</p><p> 信息顯示:顯示好友的在線列表和好友的
84、離線列表.</p><p> 聊天紀(jì)錄:能夠記錄當(dāng)前界面的聊天記錄.</p><p> 登錄提示:顯示歡迎界面.</p><p> 信息提示:能夠播放提示音,提示用戶有人向其發(fā)送聊天邀請.</p><p> 頭像閃爍提示:在收到消息而聊天面板未打開時,對你發(fā)出聊天信息的好友頭像閃爍.</p><p> 發(fā)送窗
85、口抖動:發(fā)送提示聲音并對好友的聊天窗體進(jìn)行顫動激活.</p><p> 添加好友:能夠通過連接本地?cái)?shù)據(jù)庫進(jìn)行添加好友.</p><p> 刪除好友:能夠通過連接本地?cái)?shù)據(jù)庫進(jìn)行刪除好友.</p><p><b> 服務(wù)器端功能包括:</b></p><p> 登陸信息:檢查登陸信息是否正確,并向客戶端返回登陸信息,
86、如信息正確.就將在線用戶好友列表和離線好友列表發(fā)給該用戶,并將該用戶的狀態(tài)發(fā)給各在線用戶并更新其在線好友列表和離線好友列表.</p><p> 消息發(fā)送:服務(wù)器打開監(jiān)聽,當(dāng)接收到客戶端發(fā)送的消息建立線程通過Sockets套接字轉(zhuǎn)發(fā)消息.</p><p> 操作數(shù)據(jù)庫:服務(wù)器端對數(shù)據(jù)庫里的數(shù)據(jù)表進(jìn)行映射生成在線好友列表和離線列表.</p><p> 用戶下線:將
87、此用戶下線消息發(fā)給各客戶端,并改寫用戶在服務(wù)器端的狀態(tài),更新客戶端的在線好友列表和離線列表.</p><p> 3.3 數(shù)據(jù)處理需求</p><p> 對用戶信息的處理需求:包括查詢好友信息、添加好友關(guān)系信息、刪除好友關(guān)系信息;</p><p> 對聊天信息的處理需求:包括發(fā)送字符串、接收并顯示字符串、保存當(dāng)前界面的信息.</p><p&g
88、t; 3.4 系統(tǒng)性能需求</p><p> 一個系統(tǒng)的性能包括信息系統(tǒng)的效率、處理方式、可靠性、安全性、適應(yīng)性等內(nèi)容.效率是信息系統(tǒng)的處理能力、處理速度、吞吐量、響應(yīng)時間等與系統(tǒng)處理時間有關(guān)的性能要素.處理方式涉及的范圍比較寬,包括信息系統(tǒng)的結(jié)構(gòu)和分布模式、交互方式、業(yè)務(wù)處理方式等.可靠性是保證系統(tǒng)正常工作及抗故障、抗干擾的能力,它包括:保證系統(tǒng)正常工作的能力;對系統(tǒng)故障的預(yù)防、檢測以及自動糾錯的能力;出現(xiàn)
89、故障時,保證系統(tǒng)不發(fā)生崩潰,并使系統(tǒng)重新恢復(fù)、重新啟動的能力等.安全性是保證合法用戶能夠正確使用信息系統(tǒng),并防止非法用戶訪問信息系統(tǒng)的能力.適應(yīng)性是信息系統(tǒng)對外部環(huán)境和需求變化的適應(yīng)能力.</p><p> 根據(jù)系統(tǒng)的性能需求,在聊天系統(tǒng)的開發(fā)主要要實(shí)現(xiàn)的目標(biāo)有以下幾個方面:</p><p> (1)界面設(shè)計(jì)友好、美觀.</p><p> (2)數(shù)據(jù)存儲安全、
90、可靠.</p><p> (3)信息分類清晰、準(zhǔn)確.</p><p> (4)數(shù)據(jù)查詢的靈活性.</p><p> (5)實(shí)現(xiàn)對聊天信息的展示.</p><p> (6)提供好友關(guān)系信息的添加、刪除功能,方便用戶操作.</p><p> (7)具有易維護(hù)性和易操作性.</p><p>
91、 第4章 系統(tǒng)分析與設(shè)計(jì)</p><p> 4.1 系統(tǒng)功能模塊設(shè)計(jì)</p><p> 按系統(tǒng)的功能需求分析,將系統(tǒng)功能模塊分為兩大模塊:客戶端功能模塊和服務(wù)器端功能模塊.</p><p> 客戶端功能模塊包括:用戶登錄模塊、用戶注冊模塊、軟件版權(quán)模塊、顯示好友模塊、在線聊天模塊、添加好友模塊、刪除好友模塊;</p><p> 服務(wù)
92、器功能模塊包括:服務(wù)器登錄模塊.</p><p> 根據(jù)系統(tǒng)功能模塊設(shè)計(jì),系統(tǒng)的整體功能結(jié)構(gòu)圖如圖4-1所示:</p><p> 圖4-1 系統(tǒng)整體功能結(jié)構(gòu)圖</p><p> 4.2 系統(tǒng)模塊詳細(xì)設(shè)計(jì)</p><p> 4.2.1 客戶端功能模塊設(shè)計(jì)</p><p> ?。?)用戶注冊.設(shè)計(jì)流程如下:輸入要注
93、冊的用戶名和密碼,系統(tǒng)會檢查用戶名是否已經(jīng)存在,如果不存在,就允許注冊新用戶并發(fā)回?cái)?shù)據(jù)庫自動生成的用戶ID.模塊流程圖如圖4-2所示:</p><p> 圖4-2 用戶注冊流程圖</p><p> (2)用戶登錄.設(shè)計(jì)流程如下:首先判斷服務(wù)器的端口號是否配置正確,然后判斷輸入的用戶名和密碼是否正確,正確就用戶登錄.模塊流程圖如圖4-3所示:</p><p>
94、圖4-3 用戶登錄流程圖</p><p> ?。?)滾動和通知區(qū)域圖標(biāo).設(shè)計(jì)流程如下:在登錄成功后,生成窗體的NotifyIcon圖標(biāo)和一個滾動的歡迎圖標(biāo).</p><p> ?。?)顯示好友.設(shè)計(jì)流程如下:在登錄成功后,服務(wù)器將為用戶對數(shù)據(jù)庫的表進(jìn)行映射獲得在線好友的列表和離線好友的列表通過Socket套接字發(fā)送過去,顯示好友模塊在顯示面板上顯示好友.</p><p&
95、gt; ?。?)在線聊天.設(shè)計(jì)流程如下:先判斷好友是否在線,進(jìn)入聊天界面中寫入發(fā)送的信息,通過服務(wù)器監(jiān)聽到發(fā)送好友消息在轉(zhuǎn)發(fā)給好友,進(jìn)行在線聊天,其還整合發(fā)送震動框提示功能、頭像閃爍提示以及聲音提示功能.模塊流程圖如圖4-4所示:</p><p> 圖4-4 在線聊天模塊流程圖</p><p> ?。?)添加好友.設(shè)計(jì)流程如下:首先通過進(jìn)行查詢操作判斷用戶是否已經(jīng)加過其好友,然后進(jìn)行添加
96、好友關(guān)系.模塊流程圖如圖4-5所示:</p><p> 圖4-5 添加好友模塊流程圖</p><p> ?。?)刪除好友.設(shè)計(jì)流程如下:首先通過進(jìn)行查詢操作判斷用戶是否是在操作自己的好友關(guān)系,然后判斷是否是好友關(guān)系,如果是就刪除好友關(guān)系.模塊流程圖如圖4-6所示:</p><p> 圖4-6 刪除好友模塊流程圖</p><p> 4.2
97、.2 服務(wù)器端功能模塊設(shè)計(jì)</p><p> 服務(wù)器端功能模塊就是服務(wù)器監(jiān)聽模塊:</p><p> 服務(wù)器監(jiān)聽模塊.設(shè)計(jì)流程如下:首先判斷服務(wù)器的端口是否更該,配置好端口號開啟服務(wù)器開始監(jiān)聽,監(jiān)聽到用戶登錄消息,客戶端進(jìn)行操作數(shù)據(jù)庫驗(yàn)證,正確就建立Socket連接,并讀取其在線好友列表和離線好友列表發(fā)送給客戶端,當(dāng)監(jiān)聽客戶端進(jìn)行各種操作,服務(wù)器端調(diào)用自身的監(jiān)聽處理方法進(jìn)行處理并將結(jié)果
98、或信息通過Socket發(fā)送給客戶端.服務(wù)器監(jiān)聽模塊流程圖如圖4-7所示:</p><p> 圖4-7 服務(wù)器監(jiān)聽模塊流程圖</p><p> 4.3 系統(tǒng)整體流程圖</p><p> 在聊天系統(tǒng)的流程是用戶在客戶端登錄,若用戶名不存在,則需先注冊用戶信息,在注冊完用戶信息后,用戶輸入自己的帳號及密碼登錄系統(tǒng),在用戶登錄成功后服務(wù)器端監(jiān)聽客戶端發(fā)來的登陸消息,進(jìn)
99、行登錄處理,驗(yàn)證數(shù)據(jù)庫表中的數(shù)據(jù)進(jìn)行對比以及該用戶當(dāng)前的狀態(tài),如果用戶的賬號和密碼比對無錯,再比對在線用戶Hash表中是否已經(jīng)登錄,如果沒有登錄則建立Socket連接并更新在線用戶Hash表,建立線程處理與用戶的Socket連接操作,同時發(fā)送登錄用戶的在線好友列表和離線好友列表,用戶成功登錄后,進(jìn)入好友顯示模塊,在在線好友界面中點(diǎn)擊好友頭像進(jìn)入聊天界面,用戶發(fā)送信息給在線好友,服務(wù)器監(jiān)聽到客戶端通過Socket發(fā)過來的對好友進(jìn)行聊天的消
100、息,并截取Socket傳輸?shù)臄?shù)據(jù)流中的發(fā)送者要傳輸給接收者的消息,通過與接收者建立Socket連接,將數(shù)據(jù)寫入其Socket傳輸數(shù)據(jù)中,實(shí)現(xiàn)數(shù)據(jù)的轉(zhuǎn)發(fā),同時用戶對好友進(jìn)行發(fā)顫抖框操作都是服務(wù)器接受其操作消息標(biāo)識參數(shù),在發(fā)給好友操作標(biāo)識參數(shù),然后其客戶端就會調(diào)用其自身定義的該標(biāo)識參數(shù)下的方法,聊天完畢,用戶發(fā)送離線消息,服務(wù)器接受到其消息,關(guān)閉與其的Socket連接,更新在線用戶H</p><p> 客戶機(jī)/服務(wù)
101、器模式在操作過程中采取的是主動請示方式,首先服務(wù)器方要先啟動,并根據(jù)請示提供相應(yīng)服務(wù):(過程如下)</p><p><b> 服務(wù)器</b></p><p> 1、打開一通信端口并告知本地主機(jī),它愿意在某一個公認(rèn)地址上接收客戶請求.</p><p> 2、等待客戶請求到達(dá)該端口.</p><p> 3、接收到重復(fù)
102、服務(wù)請求,處理該請求并發(fā)送應(yīng)答信號.</p><p> 4、返回第二步,等待另一客戶請求</p><p><b> 5、關(guān)閉服務(wù)器.</b></p><p><b> 客戶方:</b></p><p> 1、打開一通信通道,并連接到服務(wù)器所在主機(jī)的特定端口.</p><p
103、> 2、向服務(wù)器發(fā)送服務(wù)請求報(bào)文,等待并接收應(yīng)答;繼續(xù)提出請求……</p><p> 3、請求結(jié)束后關(guān)閉通信通道并終止.</p><p> 聊天系統(tǒng)的系統(tǒng)流程圖如圖4-8所示:</p><p> 圖4-8系統(tǒng)整體流程圖</p><p> 圖4-9 系統(tǒng)分布流程圖</p><p><b> 第
104、5章 數(shù)據(jù)庫設(shè)計(jì)</b></p><p><b> 5.1 概述</b></p><p> 數(shù)據(jù)庫設(shè)計(jì)是指根據(jù)用戶需求研制數(shù)據(jù)庫結(jié)構(gòu)并應(yīng)用數(shù)據(jù)庫的過程.一般,數(shù)據(jù)庫的設(shè)計(jì)過程大致可分?jǐn)?shù)據(jù)庫設(shè)計(jì)為5個步驟:</p><p> (1)需求分析;調(diào)查和分析用戶的業(yè)務(wù)活動和數(shù)據(jù)的使用情況,弄清所用數(shù)據(jù)的種類、范圍、數(shù)量以及它們在業(yè)務(wù)活
105、動中交流的情況,確定用戶對數(shù)據(jù)庫系統(tǒng)的使用要求和各種約束條件等,形成用戶需求規(guī)約.</p><p> ?。?)概念設(shè)計(jì);對用戶要求描述的現(xiàn)實(shí)世界(可能是一個工廠、一個商場或者一個學(xué)校等),通過對其中住處的分類、聚集和概括,建立抽象的概念數(shù)據(jù)模型.這個概念模型應(yīng)反映現(xiàn)實(shí)世界各部門的信息結(jié)構(gòu)、信息流動情況、信息間的互相制約關(guān)系以及各部門對 信息儲存、查詢和加工的要求等.所建立的模型應(yīng)避開數(shù)據(jù)庫在計(jì)算機(jī)上的具體實(shí)現(xiàn)細(xì)節(jié)
106、,用一種抽象的形式表示出來.</p><p> ?。?)邏輯設(shè)計(jì);主要工作是將現(xiàn)實(shí)世界的概念數(shù)據(jù)模型設(shè)計(jì)成數(shù)據(jù)庫的一種邏輯模式,即適應(yīng)于某種特定數(shù)據(jù)庫管理系統(tǒng)所支持的邏輯數(shù)據(jù)模式.與此同時,可能還需為各種數(shù)據(jù)處理應(yīng)用領(lǐng)域產(chǎn)生相應(yīng)的邏輯子模式.這一步設(shè)計(jì)的結(jié)果就是所謂“邏輯數(shù)據(jù)庫”.</p><p> (4)物理設(shè)計(jì);根據(jù)特定數(shù)據(jù)庫管理系統(tǒng)所提供的多種存儲結(jié)構(gòu)和存取方法等依賴于具體計(jì)算機(jī)結(jié)
107、構(gòu)的各項(xiàng)物理設(shè)計(jì)措施,對具體的應(yīng)用任務(wù)選定最合適的物理存儲結(jié)構(gòu)(包括文件類型、索引結(jié)構(gòu)和數(shù)據(jù)的存放次序與位邏輯等)、存取方法和存取路徑等.這一步設(shè)計(jì)的結(jié)果就是所謂“物理數(shù)據(jù)庫”.</p><p> ?。?)驗(yàn)證設(shè)計(jì);在上述設(shè)計(jì)的基礎(chǔ)上,收集數(shù)據(jù)并具體建立一個數(shù)據(jù)庫,運(yùn)行一些典型的應(yīng)用任務(wù)來驗(yàn)證數(shù)據(jù)庫設(shè)計(jì)的正確性和合理性.一般,一個大型數(shù)據(jù)庫的設(shè)計(jì)過程往往需要經(jīng)過多次循環(huán)反復(fù).當(dāng)設(shè)計(jì)的某步發(fā)現(xiàn)問題時,可能就需要返回
108、到前面去進(jìn)行修 改.因此,在做上述數(shù)據(jù)庫設(shè)計(jì)時就應(yīng)考慮到今后修改設(shè)計(jì)的可能性和方便性.</p><p> 5.2 數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(jì)</p><p> 數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(jì)是在需求分析的基礎(chǔ)上,設(shè)計(jì)出能夠滿足用戶需求的各種實(shí)體,以及它們之間的關(guān)系,為后面的邏輯結(jié)構(gòu)設(shè)計(jì)打下基礎(chǔ).這階段可用的工具很多.用的最多的是E-R圖(Entity-Relation,實(shí)體-關(guān)系圖),另外還有許多計(jì)算機(jī)輔
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于.net平臺的聊天程序畢業(yè)設(shè)計(jì)
- android聊天系統(tǒng)畢業(yè)論文--基于android平臺的聊天系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
- 基于android平臺的聊天系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn) 畢業(yè)論文
- 畢業(yè)論文--基于lan的聊天系統(tǒng)
- 基于.net畢業(yè)論文
- 基于.net平臺c#軟件技術(shù)畢業(yè)論文
- 基于web的聊天室畢業(yè)論文
- 基于web的聊天室畢業(yè)論文
- 基于c#聊天群的編程畢業(yè)論文
- 畢業(yè)論文(設(shè)計(jì))基于.net畢業(yè)論文管理系統(tǒng)
- 畢業(yè)論文--聊天系統(tǒng)的設(shè)計(jì)
- 基于php的在線聊天通訊軟件畢業(yè)論文
- 基于web的聊天室構(gòu)建畢業(yè)論文
- 基于php的在線聊天通訊軟件畢業(yè)論文
- 小型聊天系統(tǒng)畢業(yè)論文
- 畢業(yè)論文--sjchat聊天軟件
- 基于.net畢業(yè)論文管理系統(tǒng)
- 網(wǎng)站畢業(yè)論文--- 基于.net平臺開發(fā)的b2c網(wǎng)站
- 基于PHP的在線聊天通訊軟件畢業(yè)論文.doc
- 基于java局域網(wǎng)聊天軟件畢業(yè)論文
評論
0/150
提交評論