版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p> 多功能聊天軟件的設(shè)計(jì)與開發(fā)</p><p> ——音頻/視頻聊天模塊</p><p> 論文作者姓名:</p><p> 申請學(xué)位專業(yè):</p><p> 申請學(xué)位類別:</p><p> 指導(dǎo)教師姓名(職稱):</p><p> 論文提交日期:</p>&
2、lt;p> 多功能聊天軟件的設(shè)計(jì)與開發(fā)</p><p> ——音頻/視頻聊天模塊</p><p><b> 摘 要</b></p><p> 隨著互聯(lián)網(wǎng)技術(shù)的飛速發(fā)展,基于網(wǎng)絡(luò)的即時(shí)通信給人們帶來諸多便利,也成為當(dāng)今網(wǎng)絡(luò)應(yīng)用的主流。聊天工具作為當(dāng)今使用最為廣泛的即時(shí)通信工具之一,可以方便人們隨時(shí)隨地進(jìn)行在線交流,比如騰訊公司的Q
3、Q聊天軟件。本畢業(yè)設(shè)計(jì)就是模擬QQ聊天軟件,開發(fā)一個(gè)包括文字聊天、文件傳輸、語音及視頻交流等功能的聊天軟件。</p><p> 本設(shè)計(jì)的開發(fā)采用C/S結(jié)構(gòu),在基于.NET開發(fā)環(huán)境下,使用C#編程語言進(jìn)行本軟件的開發(fā)。本文首先論述國內(nèi)外聊天工具的發(fā)展情況和現(xiàn)今的發(fā)展方向,并對開發(fā)環(huán)境和開發(fā)語言進(jìn)行了簡單介紹;對本設(shè)計(jì)所要開發(fā)的多功能聊天軟件作了較為詳細(xì)的需求分析,并給出了多功能聊天軟件的設(shè)計(jì)方案,主要功能包括文字
4、聊天、文件傳輸、語音聊天及視頻聊天等;本畢業(yè)設(shè)計(jì)主要實(shí)現(xiàn)的是多功能聊天軟件的部分功能,即語音聊天、視頻聊天等功能,主要實(shí)現(xiàn)用戶注冊、用戶登錄、用戶之間語音、視頻聊天功能;與另一位同學(xué)開發(fā)實(shí)現(xiàn)的文字聊天與文件傳輸模塊集成在一起,構(gòu)成一個(gè)實(shí)用的、功能完善的聊天軟件,達(dá)到預(yù)期目標(biāo);通過運(yùn)行、測試與分析說明,該多功能聊天軟件運(yùn)行穩(wěn)定、可靠,具有一定的實(shí)用價(jià)值。</p><p> 關(guān)鍵詞:聊天軟件;視頻聊天;語音聊天;C
5、/S結(jié)構(gòu);QQ聊天軟件</p><p> Design and Development of the Multi-function Chat Software——Audio/Video Chat Module</p><p><b> Abstract</b></p><p> With the rapid development of
6、Internet technology, the instant messenger based on network brings many conveniences to the people, also becomes the focus of network application in present. Chat is one of the most widespread instant messengers, may fac
7、ilitate the people to carry on the online information exchange at anytime and anywhere, such as the QQ chat software of Tencent Company. This graduation project simulates QQ chat software, develops chat software, which i
8、ncludes the writing, file tran</p><p> This design development uses the C/S structure, uses the C# programming language to carry on developing this software based on .NET environment. This paper first elabo
9、rates the development situation of domestic and foreign chats tool and the development direction nowadays, and has carried on the simple introduction to the development environment and the development language. The deman
10、d of multi-function chat software is analyzed in detail, and its plan is provided. It’s main functions include th</p><p> Key words: Chat Software; Video Chat; Audio Chat; C/S Structure; QQ Chat Software<
11、;/p><p><b> 目 錄</b></p><p><b> 1 引言1</b></p><p> 1.1 課題背景1</p><p> 1.2 國內(nèi)外主要聊天工具的發(fā)展?fàn)顩r1</p><p> 1.3 本課題研究的意義2</p><
12、;p> 1.4 本文的主要工作3</p><p> 2 需求分析及開發(fā)工具3</p><p> 2.1 需求分析3</p><p> 2.2 開發(fā)工具4</p><p> 2.2.1 C#語言的介紹4</p><p> 2.2.2 C/S結(jié)構(gòu)的介紹5</p><p&g
13、t; 2.2.3 開發(fā)環(huán)境6</p><p> 2.2.4 SQL Server 2000數(shù)據(jù)庫介紹7</p><p> 3 多功能聊天軟件的設(shè)計(jì)方案8</p><p> 3.1 聊天系統(tǒng)流程的分析與設(shè)計(jì)8</p><p> 3.2 注冊模塊的分析與設(shè)計(jì)9</p><p> 3.3 登錄模塊的分
14、析與設(shè)計(jì)9</p><p> 4 語音、視頻聊天模塊的具體實(shí)現(xiàn)10</p><p> 4.1 Video for Windows簡介10</p><p> 4.2 G729.dll的簡介10</p><p> 4.3 LanMsgLibrary.dll的簡介11</p><p> 4.4 語音、視
15、頻聊天的模塊設(shè)計(jì)思想11</p><p> 4.5 視頻聊天與語音聊天模塊功能的具體實(shí)現(xiàn)13</p><p> 5 登錄、注冊模塊功能模塊及其它特殊功能模塊實(shí)現(xiàn)分析14</p><p> 5.1 登錄模塊功能的具體實(shí)現(xiàn)14</p><p> 5.2 注冊模塊功能的具體實(shí)現(xiàn)14</p><p> 5
16、.3 頭像閃動(dòng)功能的具體實(shí)現(xiàn)15</p><p> 6 系統(tǒng)的綜合測試與分析16</p><p><b> 結(jié) 論18</b></p><p><b> 參考文獻(xiàn)19</b></p><p><b> 致 謝20</b></p>&
17、lt;p><b> 聲 明21</b></p><p><b> 1 引言</b></p><p><b> 1.1 課題背景</b></p><p> 隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展,互聯(lián)網(wǎng)應(yīng)用越來越豐富?;ヂ?lián)網(wǎng)以其獨(dú)特的傳播方式吸引了大量用戶,同時(shí)也給人們帶來了許多便利,譬如可以借助
18、于網(wǎng)絡(luò)進(jìn)行相互交流、信息傳遞等。聊天工具作為互聯(lián)網(wǎng)中運(yùn)用最為廣泛的通信工具之一,它可以讓用戶之間進(jìn)行即時(shí)的交流和信息的傳遞。聊天工具的出現(xiàn)可以說是基于互聯(lián)網(wǎng)通信交流方式的歷史性變革,它已經(jīng)漸漸取代了原來效率低、費(fèi)用高的如信件、電報(bào)的通信方式,以其快速、交互、簡便的方式給用戶的交流提供了簡單、易用的信息平臺,成為現(xiàn)今應(yīng)用最為廣泛的即時(shí)通信工具之一。隨著相關(guān)技術(shù)的日益發(fā)展,用戶對功能的需求不斷提高。為了更好地服務(wù)于用戶,聊天工具的功能也在不
19、斷地完善。在未來的網(wǎng)絡(luò)時(shí)代中,聊天工具將以即時(shí)通信為其基本特點(diǎn),并與各種網(wǎng)絡(luò)應(yīng)用整合,同時(shí)隨著無線網(wǎng)絡(luò)的廣泛應(yīng)用,它將成為未來不可缺少的一種通信軟件。</p><p> 1.2 國內(nèi)外主要聊天工具的發(fā)展?fàn)顩r</p><p> 中國的大部分網(wǎng)絡(luò)用戶都擁有自己的QQ號碼。騰訊計(jì)算機(jī)系統(tǒng)有限公司成立于1998年11月。1999年2月,騰訊自主開發(fā)了基于Internet的即時(shí)通信網(wǎng)絡(luò)工具——騰
20、訊即時(shí)通信Tencent Instant Messenger,簡稱TIM或騰訊QQ。騰訊QQ經(jīng)過三年時(shí)間的發(fā)展,到2002年,其用戶群成為中國最大的互聯(lián)網(wǎng)注冊用戶群,注冊用戶達(dá)到1億6000萬,其中活躍用戶總數(shù)超過5000萬。自此騰訊QQ成為中國最大的即時(shí)通信服務(wù)提供商。騰訊公司是中國最早也是目前中國市場上最大的本土互聯(lián)網(wǎng)即時(shí)通信軟件開發(fā)商。公司成立7年多以來,一直以追求卓越的技術(shù)為導(dǎo)向,始終處于穩(wěn)健、高速發(fā)展的狀態(tài)。騰訊QQ超過4.3
21、億的注冊用戶群體現(xiàn)了網(wǎng)絡(luò)用戶對騰訊QQ這一聊天工具的廣泛應(yīng)用。在當(dāng)今市場經(jīng)濟(jì)高速發(fā)展的前提下,騰訊QQ也在不斷自我完善,漸漸地演變?yōu)橐粋€(gè)人性化、市場化的多功能的聊天工具軟件,它可以給網(wǎng)絡(luò)聊天用戶帶來越來越多的人性化服務(wù):從原來單一的文字聊天過渡到集語音、視頻、文件傳輸?shù)榷喙δ苡谝簧淼牧奶燔浖?lt;/p><p> ICQ和MSN是在國外比較盛行的即時(shí)聊天工具,騰訊QQ的開發(fā)對MSN和ICQ都進(jìn)行了借鑒。ICQ是I
22、 Seek You(我找你)的縮寫,最初是一家以色列公司開發(fā)出來的免費(fèi)軟件,中文名稱目前可以稱之為“網(wǎng)絡(luò)呼叫器”,它在全球擁有超過4000萬的用戶。事實(shí)上這種軟件最主要的功能就是讓用戶知道網(wǎng)絡(luò)上的朋友現(xiàn)在有沒有上線(前提是對方也有安裝ICQ),然后可以互送Messages(消息)交談或是交換檔案等等,比電子郵件更具即時(shí)性。正如一位ICQ軟件的最初程序設(shè)計(jì)員所說:“當(dāng)你登錄因特網(wǎng)之后,你周圍都是些自己熟悉的人,而且,你還可以和他們分享這種
23、體驗(yàn),這的確是一件令人激動(dòng)的事情?!?lt;/p><p> MSN是微軟推出的聊天軟件,是一套類似ICQ的網(wǎng)上即時(shí)通訊軟件,它以最簡單的方式為用戶提供強(qiáng)有力的即時(shí)消息支持,同時(shí)能使Microsoft Outlook Express(R) 和MSN Hotmail(R)變得更簡單易用。MSN Messenger Service 還可使用戶間的聯(lián)機(jī)交談變得更加輕松愉快,了解誰在聯(lián)機(jī)以及查看用戶何時(shí)聯(lián)機(jī)并與其交換即時(shí)消息
24、。用戶間可以進(jìn)行單獨(dú)的聊天,或者在同一個(gè)對話窗口中與多達(dá)四個(gè)的聯(lián)系人進(jìn)行聊天。自動(dòng)的輸入指示器可讓用戶知道何時(shí)聯(lián)系人正在輸入答復(fù),還可以進(jìn)行全球電話呼叫——以非常低的費(fèi)用呼叫世界的任何地方。用戶可以選擇所要使用的電話服務(wù)提供商,從服務(wù)提供商的列表中選擇最適合的提供商。用交談取代鍵盤輸入,使用計(jì)算機(jī)上的話筒和揚(yáng)聲器就可以和位于世界各地的朋友進(jìn)行交談,甚至可以呼叫聯(lián)系人將文本消息發(fā)送到聯(lián)系人的移動(dòng)電話和傳呼機(jī)上(注:此特性僅適用于美國和加拿
25、大),而進(jìn)入“聊天室”結(jié)識新朋友,或加入與名人聊天,此特性在所有地區(qū)都適用。用戶可以使用 MSN Messenger 與朋友交換照片、喜愛的音樂或任何其他文件,也可以監(jiān)視新的電子郵件并查看用戶有多少新的</p><p> 1.3 本課題研究的意義</p><p> 在當(dāng)今信息時(shí)代,信息通信已成為這個(gè)世紀(jì)必不可少的組成部分,隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展,聊天軟件作為即時(shí)性通信工具的主流,已被越來
26、越多的人所喜愛。在中國,上網(wǎng)的用戶幾乎都用騰訊QQ進(jìn)行聊天。當(dāng)前騰訊QQ的注冊帳戶已經(jīng)超過4.3億,是中國用戶最多、最為流行的聊天工具。起初的QQ只支持文字聊天,隨著相關(guān)技術(shù)的發(fā)展,騰訊QQ也不斷的自我完善,增加眾多實(shí)用的、人性化的功能,得到了許多用戶的支持與喜愛?,F(xiàn)如今騰訊公司已經(jīng)初步完成了面向在線生活產(chǎn)業(yè)模式的業(yè)務(wù)布局:構(gòu)建了QQ、QQ.com、QQ游戲以及QQ移動(dòng)手機(jī)門戶這四大網(wǎng)絡(luò)平臺,形成了規(guī)模巨大的網(wǎng)絡(luò)社區(qū)。在滿足用戶信息傳遞
27、與知識獲取需求方面,擁有QQ.Com門戶、QQ即時(shí)通訊工具以及年初收購的Foxmail電子郵件等;在滿足用戶群體交流和資源共享方面,騰訊推出的個(gè)人博客Q-Zone將與訪問量極大的論壇、聊天室、QQ群相互協(xié)同;在滿足用戶個(gè)性展示和娛樂服務(wù)方面,騰訊擁有非常成功的虛擬形象產(chǎn)品QQshow、QQpet(寵物)和QQGame(游戲)QQMusic/Radio/LiveTV(音樂/電臺/電視直播)等,另外對手機(jī)用戶提供了彩鈴、彩信等無線增值業(yè)務(wù)&
28、lt;/p><p> 1.4 本文的主要工作</p><p> 隨著用戶對軟件功能的需求不斷提高,即時(shí)通訊的產(chǎn)品也不斷地更新?lián)Q代。即時(shí)通訊的發(fā)展不論是在基礎(chǔ)應(yīng)用方面還是在擴(kuò)展應(yīng)用方面都有著飛躍。為了滿足用戶的需求,包括騰訊公司的聊天軟件QQ在內(nèi),許多即時(shí)性聊天工具都推出了語音聊天、視頻聊天功能模塊。本文主要對聊天軟件的語音聊天和視頻聊天等相關(guān)功能的實(shí)現(xiàn)原理進(jìn)行了研究。</p>
29、<p> 本文首先對聊天軟件的發(fā)展以及其對人們的生活有何影響作了簡述,并對開發(fā)環(huán)境和工具進(jìn)行了相應(yīng)說明并對此聊天軟件系統(tǒng)進(jìn)行了較為詳細(xì)的分析;進(jìn)而提出了該多功能聊天軟件的設(shè)計(jì)方案。在本次多功能聊天軟件的設(shè)計(jì)與開發(fā)中,本人主要負(fù)責(zé)設(shè)計(jì)開發(fā)登錄模塊、注冊模塊、語音聊天模塊、視頻聊天模塊,并對此聊天軟件系統(tǒng)的登錄模塊、注冊模塊、語音聊天、視頻聊天模塊的設(shè)計(jì)與實(shí)現(xiàn)進(jìn)行了較詳細(xì)的說明和分析。</p><p>
30、 2 需求分析及開發(fā)工具</p><p><b> 2.1 需求分析</b></p><p> 此聊天軟件系統(tǒng)是模擬現(xiàn)今國內(nèi)最為流行的即時(shí)性通訊工具QQ而設(shè)計(jì)的,能夠?qū)崿F(xiàn)注冊、登錄、添加好友、文字聊天、文件傳輸、語音聊天、視頻聊天等功能。該聊天軟件系統(tǒng)是采用C/S結(jié)構(gòu),即客戶端與服務(wù)器端的結(jié)構(gòu)體系。基于對該聊天軟件功能的分析,本文分別對客戶端與服務(wù)器端進(jìn)行了設(shè)
31、計(jì)。</p><p> 該聊天軟件服務(wù)器端的功能是實(shí)現(xiàn)對客戶端提交的用戶信息進(jìn)行處理。服務(wù)器設(shè)計(jì)內(nèi)容包含:信息接收、注冊、登錄、刷新、更新、添加好友等。“信息接收”是提供服務(wù)器接受客戶端發(fā)送信息的功能;“注冊”是服務(wù)器端接受到用戶的注冊信息請求后,將請求信息寫入到數(shù)據(jù)庫,為用戶的注冊提了相關(guān)服務(wù);“登錄”是服務(wù)器通過驗(yàn)證登錄信息來實(shí)現(xiàn)相關(guān)的服務(wù);“刷新”是對服務(wù)器的更新數(shù)據(jù)每過一段時(shí)間進(jìn)行一次刷新,來顯示用戶當(dāng)
32、前在服務(wù)器的信息狀況,如在線狀態(tài)等;“更新”是服務(wù)器對用戶在數(shù)據(jù)庫中信息進(jìn)行相關(guān)的操作;“用戶退出處理”是服務(wù)器在用戶退出聊天系統(tǒng)后作出的相關(guān)處理工作;“好友添加”是服務(wù)器對添加的好友信息進(jìn)行處理等相關(guān)操作。</p><p> 客戶端即用戶使用的應(yīng)用程序端。用戶通過該聊天軟件的客戶端來實(shí)現(xiàn)網(wǎng)上聊天的相關(guān)功能:注冊、登錄、添加好友、文字聊天、文件傳輸、語音聊天、視頻聊天等。注冊功能是提交用戶相關(guān)信息以及獲得一個(gè)屬
33、于自己登錄該聊天軟件系統(tǒng)的用戶ID號;登錄功能是實(shí)現(xiàn)驗(yàn)證用戶信息與合法使用該聊天軟件系統(tǒng)的權(quán)限;添加好友是實(shí)現(xiàn)用戶之間好友添加的操作;添加好友成功后,就可以與好友之間開始文字聊天、文件傳輸、語音聊天、視頻聊天等功能。 </p><p> ?。?)該服務(wù)器的運(yùn)行環(huán)境:</p><p> ① 操作系統(tǒng):windows2000或windows2003;</p><p>
34、 ?、?內(nèi)存:256M以上(最低為256M);</p><p> ?、?CPU:Intel(R) Celeron(R) 2.0GHz或AMD 1800+以上均可;</p><p> ?、?其它:Microsoft .NET Framework SDK。</p><p> ?。?)客戶端的運(yùn)行環(huán)境:</p><p> ① 操作系統(tǒng):windo
35、ws XP或windows2003等;</p><p> ② 內(nèi)存:256M以上(最低為256M);</p><p> ?、?CPU:Intel(R) Celeron(R) 2.0GHz或AMD 1800+以上均可;</p><p> ?、?攝像頭、耳機(jī)等外部設(shè)備。 </p><p> 第一次使用系統(tǒng)的用戶通過填寫個(gè)人信息來注冊,服務(wù)器返
36、回一個(gè)注冊ID號給注冊用戶,用來登錄。已經(jīng)注冊的用戶在登錄界面填寫完相關(guān)登錄信息,通過服務(wù)器的驗(yàn)證后就可以進(jìn)入客戶端界面。在線用戶在添加好友時(shí)可以查看所要添加用戶的列表信息。當(dāng)對要添加的好友發(fā)送請求添加的信息后,由該好友驗(yàn)證是否通過請求,同意后會向請求方發(fā)送同意添加的消息。當(dāng)請求方添加完成后,服務(wù)器端會把相關(guān)信息存入到好友表的數(shù)據(jù)庫中。完成以上操作以后,兩人即可進(jìn)行在線聊天。 </p><p><b>
37、 2.2 開發(fā)工具</b></p><p> 2.2.1 C#語言的介紹</p><p> C#(Csharp)是一種最新的、面向?qū)ο蟮木幊陶Z言,它使得程序員可以快速地編寫各種基于Microsoft .NET平臺的應(yīng)用程序。Microsoft .NET提供了一系列的工具和服務(wù)來最大程度地開發(fā)、利用計(jì)算與通訊領(lǐng)域。C#面向?qū)ο蟮淖吭皆O(shè)計(jì)使它成為構(gòu)建各類組件的理想之選——無論
38、是高級的商業(yè)對象還是系統(tǒng)級的應(yīng)用程序。使用簡單的C#語言結(jié)構(gòu),這些組件可以方便的轉(zhuǎn)化為XML 網(wǎng)絡(luò)服務(wù),從而使它們可以由任何語言在任何操作系統(tǒng)上通過Internet進(jìn)行調(diào)用。最重要的是,C#使得C++程序員可以高效率地開發(fā)程序,而絕不損失C/C++原有的強(qiáng)大功能。因?yàn)檫@種繼承關(guān)系,C#與C/C++具有極大的相似性,熟悉類似語言的開發(fā)者可以很快地轉(zhuǎn)向C#。</p><p> C#語言是允許類型定義、擴(kuò)展的元數(shù)據(jù),
39、這些元數(shù)據(jù)可以應(yīng)用于任何對象。項(xiàng)目構(gòu)建者可以定義領(lǐng)域特有的屬性并把他們應(yīng)用于任何語言元素類、接口等等。然后,開發(fā)人員可以編程檢查每個(gè)元素的屬性。這樣,很多工作都變得更加方便:譬如編寫一個(gè)小工具來自動(dòng)檢查每個(gè)類或接口是否被正確定義為某個(gè)抽象商業(yè)對象的一部分,或者只是創(chuàng)建一份基于對象的領(lǐng)域特有屬性的報(bào)表。定制的元數(shù)據(jù)和程序代碼之間的緊密對應(yīng)有助于加強(qiáng)程序的預(yù)期行為和實(shí)際實(shí)現(xiàn)的之間的對應(yīng)關(guān)系。</p><p> 在C
40、#中,每個(gè)對象都自動(dòng)生成為一個(gè)COM對象。開發(fā)者不再需要顯式的實(shí)現(xiàn)IUnknown和其他COM接口.這些功能都是內(nèi)置的、類似的,C#可以調(diào)用現(xiàn)有的COM對象,無論它是由什么語言編寫的。C#包含了一個(gè)特殊的功能:使程序可以調(diào)用任何純API。在一段特別標(biāo)記的代碼中,開發(fā)者可以使用指針和傳統(tǒng)C/C++特性,如手工的內(nèi)存管理和指針運(yùn)算。這是其相對于其它環(huán)境的極大優(yōu)勢。這意味著C#程序員可以在原有的C/C++代碼的基礎(chǔ)上編寫程序,而不是徹底放棄那
41、些代碼</p><p> 2.2.2 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),降低了系統(tǒng)的通訊開銷。目前大多數(shù)應(yīng)用軟件系統(tǒng)都是client/server形式的兩層結(jié)構(gòu),由于現(xiàn)在的軟件應(yīng)用系統(tǒng)正在向
42、分布式的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ā)展方向。傳統(tǒng)的c/s體系結(jié)構(gòu)雖然采用的是開放模式,但這只是系統(tǒng)開發(fā)一級的開放性,在特定的應(yīng)用中無論是client端還是server端都還需要特定的軟件支持。由于沒能提供用戶真正期望的開放環(huán)境,c/
43、s結(jié)構(gòu)的軟件需要針對不同的操作系統(tǒng)開發(fā)不同版本的軟件,加之產(chǎn)品的更新?lián)Q代十分快,已經(jīng)很難適應(yīng)百臺電腦以上局域網(wǎng)用戶同時(shí)使用。而且代價(jià)高,效率低。</p><p> C/S架構(gòu)軟件的優(yōu)勢與劣勢:</p><p> (1)應(yīng)用服務(wù)器運(yùn)行數(shù)據(jù)負(fù)荷較輕。最簡單的c/s體系結(jié)構(gòu)的數(shù)據(jù)庫應(yīng)用由兩部分組成,即客戶應(yīng)用程序和數(shù)據(jù)庫服務(wù)器程序。二者可分別稱為前臺程序與后臺程序。運(yùn)行數(shù)據(jù)庫服務(wù)器程序的機(jī)器
44、,也稱為應(yīng)用服務(wù)器。一旦服務(wù)器程序被啟動(dòng),就隨時(shí)等待響應(yīng)客戶程序發(fā)來的請求;客戶應(yīng)用程序運(yùn)行在用戶自己的電腦上,對應(yīng)于數(shù)據(jù)庫服務(wù)器,可稱為客戶電腦,當(dāng)需要對數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行任何操作時(shí),客戶程序就自動(dòng)地尋找服務(wù)器程序,并向其發(fā)出請求,服務(wù)器程序根據(jù)預(yù)定的規(guī)則作出應(yīng)答,送回結(jié)果,應(yīng)用服務(wù)器運(yùn)行數(shù)據(jù)負(fù)荷較輕。</p><p> ?。?)數(shù)據(jù)的儲存管理功能較為透明。在數(shù)據(jù)庫應(yīng)用中,數(shù)據(jù)的儲存管理功能,是由服務(wù)器程序和客
45、戶應(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)用中,前臺程序不是非?!笆菪 保闊┑氖虑槎冀唤o了服務(wù)器和網(wǎng)絡(luò)。在c/s體系的下,數(shù)據(jù)庫不能真正成為
46、公共、專業(yè)化的倉庫,它受到獨(dú)立的專門管理。</p><p> ?。?)c/s架構(gòu)的劣勢是高昂的維護(hù)成本且投資大。首先,采用c/s架構(gòu),要選擇適當(dāng)?shù)臄?shù)據(jù)庫平臺來實(shí)現(xiàn)數(shù)據(jù)庫數(shù)據(jù)的真正“統(tǒng)一”,使分布于兩地的數(shù)據(jù)同步完全交由數(shù)據(jù)庫系統(tǒng)去管理,但邏輯上兩地的操作者要直接訪問同一個(gè)數(shù)據(jù)庫才能有效實(shí)現(xiàn),有這樣一些問題,如果需要建立“實(shí)時(shí)”的數(shù)據(jù)同步,就必須在兩地間建立實(shí)時(shí)的通訊連接,保持兩地的數(shù)據(jù)庫服務(wù)器在線運(yùn)行,網(wǎng)絡(luò)管理工
47、作人員既要對服務(wù)器維護(hù)管理,又要對客戶端維護(hù)和管理,這需要高昂的投資和復(fù)雜的技術(shù)支持,維護(hù)成本很高,維護(hù)任務(wù)量大。</p><p> 2.2.3 開發(fā)環(huán)境</p><p> 微軟發(fā)布了.NET開發(fā)平臺,這是自1993年7月隨著Windows NT3.0出現(xiàn)的Win32 API后微軟軟件開發(fā)平臺的第一次大升級。比起Win16來,Win32提供了更多功能強(qiáng)大的API,但沒有對工具和技術(shù)進(jìn)行
48、引人注目的改變。與之不同的是,.NET開發(fā)平臺在開發(fā)者用以創(chuàng)造應(yīng)用程序的工具和技術(shù)上做了根本的改變。 .NET開發(fā)平臺使得開發(fā)者創(chuàng)建運(yùn)行在Internet Information Server (IIS)(互聯(lián)網(wǎng)信息服務(wù)器)Web服務(wù)器上的Web應(yīng)用程序更為容易,它也使創(chuàng)建穩(wěn)定、可靠而又安全的Windows桌面應(yīng)用程序更為容易。</p><p> .NET開發(fā)平臺包括以下內(nèi)容:</p><p
49、> (1).NET Framework(架構(gòu)),包括:Common Language Runtime(CLR)(通用語言運(yùn)行環(huán)境),這是用于運(yùn)行和加載應(yīng)用程序的軟件組件;新的類庫,分級組織了開發(fā)者可以在他們的應(yīng)用程序中用來顯示圖形用戶界面、訪問數(shù)據(jù)庫和文件以及在Web上通信的代碼集。</p><p> (2).NET開發(fā)者工具,包括:Visual Studio .NET Integrated Devel
50、opment Environment(IDE)(Visual Studio .NET集成開發(fā)環(huán)境),用來開發(fā)和測試應(yīng)用程序。</p><p> (3).NET編程語言(例如Visual Basic .NET和新的Visual C#),用來創(chuàng)建運(yùn)行在CLR下并且使用類庫的應(yīng)用程序。</p><p> (4)ASP .NET,一個(gè)取代以前的Active Server Pages(ASP)的
51、特殊類庫,用來創(chuàng)建動(dòng)態(tài)的Web內(nèi)容和Web服務(wù)器應(yīng)用程序,這些都將采用諸如HTML、XML和Simple Object Access Protocol(SOAP)(簡單對象訪問協(xié)議)等Internet協(xié)議和數(shù)據(jù)格式。</p><p> .NET開發(fā)平臺是一組用于建立Web服務(wù)器應(yīng)用程序和Windows桌面應(yīng)用程序的軟件組件,用該平臺創(chuàng)建的應(yīng)用程序在Common Language Runtime(CLR)(通用語
52、言運(yùn)行環(huán)境)(底層)的控制下運(yùn)行。CLR是一個(gè)軟件引擎,用來加載應(yīng)用程序,確認(rèn)它們可以沒有錯(cuò)誤地執(zhí)行,進(jìn)行相應(yīng)的安全許可驗(yàn)證,執(zhí)行應(yīng)用程序,然后在運(yùn)行完成后將它們清除。</p><p> 類庫集提供了使應(yīng)用程序可以讀寫XML數(shù)據(jù)、在Internet上通信、訪問數(shù)據(jù)庫等的代碼。所有的類庫都建立在一個(gè)基礎(chǔ)的類庫之上,它提供管理使用最為頻繁的數(shù)據(jù)類型(例如數(shù)值或文本字符串)的功能,以及諸如文件輸入/輸出等底層功能。&
53、lt;/p><p> Web服務(wù)器應(yīng)用程序通常依賴于ASP.NET,一個(gè)處理Web請求的服務(wù)器端的庫。ASP.NET又依賴一個(gè)用于發(fā)送和接收SOAP信息的Web Services庫,以及一個(gè)用于以瀏覽器接收用戶輸入并動(dòng)態(tài)地生成Web頁面以示響應(yīng)的Web用戶接口(UI)(有時(shí)稱作Web 表單)。Windows桌面應(yīng)用程序通過使用Win表單庫(也稱作Windows 表單)可以顯示一個(gè)圖形UI。</p>&
54、lt;p> 最后,Visual Studio .NET提供了一個(gè)用于在該平臺上創(chuàng)建應(yīng)用程序的圖形Integrated Development Ewironment(IDE)(集成開發(fā)環(huán)境)。程序員可以使用一種或多種.NET編程語言,來編寫他們的代碼,例如微軟自己的Visual Basic .NET(VB.NET),Visual C++, Visual C#和JScrjpt .NET等。大量其它的.NET編程語言可以從第三方廠商獲
55、得。</p><p> 2.2.4 SQL Server 2000數(shù)據(jù)庫介紹</p><p> MicrosoftSQLServer2000是一個(gè)分布式的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),具有客戶機(jī)/服務(wù)器體系結(jié)構(gòu),采用了Transact-sql的sql語言在客戶機(jī)與服務(wù)器間傳遞客戶機(jī)的請求與服務(wù)器的處理結(jié)果。眾所周知,SQLServer2000能夠滿足今天的商業(yè)環(huán)境要求不同類型的數(shù)據(jù)庫解決方案。
56、它一種應(yīng)用廣泛的數(shù)據(jù)庫管理系統(tǒng),具有許多顯著的優(yōu)點(diǎn):易用性、適合分布式組織的可伸縮性、用于決策支持的數(shù)據(jù)倉庫功能、與許多其他服務(wù)器軟件緊密關(guān)聯(lián)的集成性、良好的性價(jià)比等。性能、可伸縮性及可靠性是基本要求,而進(jìn)入市場時(shí)間也非常關(guān)鍵。除這些核心企業(yè)品質(zhì)外,SQLServer2000還為您的數(shù)據(jù)管理與分析帶來了靈活性,允許單位在快速變化的環(huán)境中從容響應(yīng),從而獲得競爭優(yōu)勢。從數(shù)據(jù)管理和分析角度看,將原始數(shù)據(jù)轉(zhuǎn)化為商業(yè)智能和充分利用Web帶來的機(jī)會
57、非常重要。作為一個(gè)完備的數(shù)據(jù)庫和數(shù)據(jù)分析包,SQLServer2000為快速開發(fā)新一代企業(yè)級商業(yè)應(yīng)用程序、為企業(yè)贏得核心競爭優(yōu)勢打開了勝利之門。作為重要的基準(zhǔn)測試可伸縮性和速度獎(jiǎng)的記錄保持者,SQLServer2000是一個(gè)具備完全Web支持的數(shù)據(jù)庫產(chǎn)品,提供了對可擴(kuò)</p><p> 3 多功能聊天軟件的設(shè)計(jì)方案</p><p> 3.1 聊天系統(tǒng)流程的分析與設(shè)計(jì)</p>
58、;<p><b> 圖1 系統(tǒng)流程圖</b></p><p> 此聊天軟件采用了C/S結(jié)構(gòu),其系統(tǒng)流程圖如圖1所示,使用這個(gè)聊天系統(tǒng)軟件的用戶必須先進(jìn)行注冊。用戶首先選擇注冊選項(xiàng),填寫相關(guān)的注冊信息,然后通過網(wǎng)絡(luò)提交給服務(wù)器,再由服務(wù)器將注冊信息提交給數(shù)據(jù)庫。同時(shí)服務(wù)器會按順序生成一個(gè)登錄ID號返回給注冊用戶,這樣注冊就完成了。完成注冊的用戶可以用返回的ID號和自己注冊時(shí)
59、填寫的密碼進(jìn)行登錄。用戶將登錄信息提交給服務(wù)器,服務(wù)器根據(jù)數(shù)據(jù)庫中的注冊信息與登錄信息進(jìn)行比較,比較一致后,則進(jìn)入系統(tǒng)的客戶端應(yīng)用程序模塊。這時(shí)你要與好友進(jìn)行聊天,則必須添加好友:進(jìn)行用戶2添加用戶N為好友的操作過程中,用戶2首先向用戶N發(fā)出添加好友的請求信息,當(dāng)用戶N接受到用戶2的信息,在通過驗(yàn)證后會發(fā)送確認(rèn)反饋信息給用戶2,并且向服務(wù)器提交好友添加確認(rèn)信息,這時(shí)服務(wù)器就會更新相應(yīng)用戶的好友列表中的信息。好友添加完成后,用戶之間就可以
60、進(jìn)行彼此之間的通信,如文字聊天、視頻聊天、語音聊天、文件傳輸?shù)取?lt;/p><p> 以上為多功能聊天軟件系統(tǒng)的總體流程圖,其中包括了登錄模塊、注冊模塊、添加好友模塊、服務(wù)器模塊、數(shù)據(jù)庫模塊等。在這個(gè)多功能聊天軟件系統(tǒng)開發(fā)設(shè)計(jì)與實(shí)現(xiàn)中,本人主要負(fù)責(zé)登錄模塊、注冊模塊、語音聊天與視聊天功能模塊的設(shè)計(jì)與實(shí)現(xiàn)。下面就對登錄模塊與注冊模塊的流程進(jìn)行了分析。</p><p> 3.2 注冊模塊的分
61、析與設(shè)計(jì)</p><p> 用戶通過填寫注冊相關(guān)的信息并將其提交給服務(wù)器,服務(wù)器將用戶填寫的相關(guān)信息存入的數(shù)據(jù)庫中去,同時(shí)在按順序自動(dòng)生成一個(gè)ID號,發(fā)給注冊用戶,表明注冊成功,此ID號就為用戶登錄帳號。圖2所示為其系統(tǒng)結(jié)構(gòu)圖。</p><p><b> 圖2 注冊系統(tǒng)</b></p><p> 3.3 登錄模塊的分析與設(shè)計(jì)</p
62、><p><b> 圖3 登錄系統(tǒng)</b></p><p> 用戶在注冊獲得ID號碼后,在登錄界面填寫ID號碼和密碼并提交給服務(wù)器,服務(wù)器通過用戶提交過來的信息和數(shù)據(jù)庫中原有的用戶信息進(jìn)行比較和驗(yàn)證,如果結(jié)果一致表明驗(yàn)證成功,用戶進(jìn)入到客戶端的系統(tǒng)界面下,如果不一致,給用戶返回登錄錯(cuò)誤信息。登錄系統(tǒng)流程分析圖3所示。</p><p> 本設(shè)計(jì)
63、主要完成的是視頻聊天、語音聊天模塊,以及登錄、注冊模塊,下面對其設(shè)計(jì)與實(shí)現(xiàn)進(jìn)行詳細(xì)的說明。</p><p> 4 語音、視頻聊天模塊的具體實(shí)現(xiàn)</p><p> 4.1 Video for Windows簡介</p><p> VFW是Microsoft 1992年推出的關(guān)于數(shù)字視頻的一個(gè)軟件包,它能使應(yīng)用程序數(shù)字化并播放從傳統(tǒng)模擬視頻源得到的視頻剪輯。VF
64、W的一個(gè)關(guān)鍵思想是播放時(shí)不需要專用硬件,為了解決數(shù)字視頻數(shù)據(jù)量大的問題,需要對數(shù)據(jù)進(jìn)行壓縮。它引進(jìn)了一種叫AVI的文件標(biāo)準(zhǔn),該標(biāo)準(zhǔn)未規(guī)定如何對視頻進(jìn)行捕獲、壓縮及播放,僅規(guī)定視頻和音頻該如何存儲在硬盤上,在AVI文件中交替存儲視頻幀和與之相匹配的音頻數(shù)據(jù)。VFW給程序員提供.VBX和AVICap窗口類的高級編程工具,使程序員能通過發(fā)送消息或設(shè)置屬性來捕獲、播放和編輯視頻剪輯?,F(xiàn)在用戶不必專門安裝VFW了,Windows95本身包括了Vi
65、deo for Windows1.1,當(dāng)用戶在安裝Windows時(shí),安裝程序會自動(dòng)地安裝配置視頻所需的組件,如設(shè)備驅(qū)動(dòng)程序、視頻壓縮程序等。VFW主要由以下六個(gè)模塊組成:</p><p> ?。?)AVICAP.DLL:包含了執(zhí)行視頻捕獲的函數(shù),它給AVI文件I/O和視頻、音頻設(shè)備驅(qū)動(dòng)程序提供一個(gè)高級接口。</p><p> ?。?)MSVIDEO.DLL:用一套特殊的DrawDib函數(shù)來
66、處理屏幕上的視頻操作。</p><p> (3)MCIAVI.DRV:此驅(qū)動(dòng)程序包括對VFW的MCI命令的解釋器。</p><p> ?。?)AVIFILE.DLL:支持由標(biāo)準(zhǔn)多媒體I/O(mmio)函數(shù)提供的更高的命令來訪問.AVI文件。</p><p> ?。?)壓縮管理器(ICM):管理用于視頻壓縮-解壓縮的編解碼器(CODEC)。</p>&
67、lt;p> ?。?)音頻壓縮管理器ACM:提供與ICM相似的服務(wù),不同的是它適于波形音頻。</p><p> 4.2 G729.dll的簡介</p><p> G.729算法是ITU-T制定的編碼速率為8kb/s的共軛結(jié)構(gòu)碼激勵(lì)線性預(yù)測聲碼器語音編碼算法標(biāo)準(zhǔn),作為低速率的語音編碼器,在傳輸?shù)膸捰邢薜那闆r下運(yùn)用越來越受到廣泛的重視。G.729系列算法聲碼器的原理都是相通的,各種算
68、法不同之處在于算法的簡化和編碼比特的多少。G.729編碼器是基于碼激勵(lì)線性預(yù)測(CELP)聲碼器模型的。這個(gè)編碼器運(yùn)算的幀長為10ms,相應(yīng)于抽樣率為8000kHz的語音數(shù)據(jù)流的80個(gè)樣值,具有8kbit/s的編碼速率,較低的延遲和高編碼語音質(zhì)量等優(yōu)點(diǎn)。</p><p> 本程序在語音聊天模塊中,調(diào)用了G729.dll動(dòng)態(tài)鏈接庫文件,它包括G.729的函數(shù)和資源,是一種可執(zhí)行文件,它允許程序共享執(zhí)行特殊任務(wù)所必
69、需的代碼和其他資源。</p><p> 4.3 LanMsgLibrary.dll的簡介</p><p> 該聊天軟件系統(tǒng)的語音聊天、視頻聊天功能的實(shí)現(xiàn)主要是引用了LanMsgLibrary.dll這個(gè)動(dòng)態(tài)鏈接庫文件,它包括VFW以及其他相關(guān)的函數(shù)與資源。在音頻與視頻聊天實(shí)現(xiàn)的過程中,程序就引用了LanMsgLibrary.dll中的VFW以及相關(guān)的函數(shù)和資源。在視頻聊天過程中,主要實(shí)
70、現(xiàn)了視頻的捕獲與播放,視頻流的壓縮與解壓。在語音聊天過程中,主要實(shí)現(xiàn)了聲音的采集與播放,通過調(diào)用了G729.dll動(dòng)態(tài)鏈接庫文件,對音頻進(jìn)行了壓縮與解壓。</p><p> 在整個(gè)語音聊天與視頻聊天實(shí)現(xiàn)的過程中,程序主要對LanMsgLibrary.dll的引用來實(shí)現(xiàn)其功能。</p><p> 4.4 語音、視頻聊天的模塊設(shè)計(jì)思想</p><p> 對于一個(gè)端
71、對端的語音聊天系統(tǒng)來說,主要涉及兩個(gè)方面的動(dòng)作,即語音的采集和播放、語音數(shù)據(jù)的發(fā)送和接收。系統(tǒng)采用多線程的設(shè)計(jì)思想來完成并協(xié)調(diào)各個(gè)過程。語音的采集實(shí)際上就是一個(gè)音頻壓縮的過程。語音的播放是聲音數(shù)據(jù)流的還原過程,通過一個(gè)父線程讀取接收線程接收到的數(shù)據(jù),并通過管道讓其子線程播放解壓后的聲音數(shù)據(jù)。語音數(shù)據(jù)的發(fā)送和接收主要用Socket編程來實(shí)現(xiàn),socket是網(wǎng)絡(luò)通訊過程中端點(diǎn)的抽象表示。為了通過socket接口進(jìn)行網(wǎng)絡(luò)通訊,程序在對話的每一
72、端都需要一個(gè)socket,兩個(gè)socket采用無連接的UDP協(xié)議。</p><p> 用戶1通過麥克對自己的聲音進(jìn)行采集,在通過壓縮,使其在網(wǎng)絡(luò)上傳輸?shù)男矢?,然后再進(jìn)行傳輸,當(dāng)用戶2接收到用戶1的聲音數(shù)據(jù)后將其解壓,然后進(jìn)行播放,如圖4所示。</p><p> 圖4 語音模塊數(shù)據(jù)流程圖</p><p> 在進(jìn)行語音聊天時(shí),兩臺計(jì)算機(jī)必須先要建立連接,如圖5
73、所示,用戶1向用戶2發(fā)送“發(fā)送語音請求”信息,用戶2收到用戶1請求信息后,發(fā)送回應(yīng)信息給用戶1,如果用戶2同意,開始語音聊天;不同意,停止語音聊天。</p><p> 圖5 語音聊天建立連接圖</p><p> 此視頻模塊的設(shè)計(jì)思想與語音模塊一致,也涉及到兩個(gè)方面的動(dòng)作,視頻的采集和播放,視頻數(shù)據(jù)的發(fā)送和接收。視頻的采集與播放是基于VFW來實(shí)現(xiàn)的,利用VFW的關(guān)于數(shù)字視頻的軟件包實(shí)現(xiàn)
74、對視頻的采集與播放。視頻數(shù)據(jù)的發(fā)送與接收同樣采用了Socket編程,在發(fā)送視頻時(shí),通過Socket端口進(jìn)行監(jiān)聽。當(dāng)收到對方發(fā)送的包含視頻請求信息和對方IP地址、端口號等信息后,如果同意請求,則向請求方發(fā)送包含了本地IP、端口號的接受視頻信息,這樣就建立了連接,開始視頻聊天。</p><p> 用戶1通過攝像頭進(jìn)行視頻采集,經(jīng)過壓縮后,向用戶2發(fā)送采集后的視頻數(shù)據(jù)。用戶2接收到用戶1發(fā)送的視頻數(shù)據(jù)并將其進(jìn)行解壓,
75、然后在用戶2的采集窗口上播放,這樣視頻的傳輸就完成了。視頻模塊數(shù)據(jù)傳輸流程如圖6所示。</p><p> 圖6 視頻模塊數(shù)據(jù)傳輸流程圖</p><p> 在進(jìn)行視頻數(shù)據(jù)傳輸前,兩臺計(jì)算機(jī)必須先要建立連接,其原理和語音聊天建立連接的原理一致。用戶1向用戶2發(fā)送視頻請求,用戶2在接收到用戶1的請求后,給用戶1發(fā)送收到請求后的回應(yīng)信息,如果同意用戶1的請求則用戶1與用戶2開始視頻聊天,如果
76、不同意就終止視頻聊天。視頻聊天建立連接如圖7所示。</p><p> 圖7 視頻聊天建立連接圖</p><p> 4.5 視頻聊天與語音聊天模塊功能的具體實(shí)現(xiàn)</p><p> 聊天軟件所包含的視頻聊天和語音聊天功能的實(shí)現(xiàn),滿足了用戶對聊天軟件的需求,使聊天軟件的功能更加人性化。</p><p> 當(dāng)用戶通過登陸進(jìn)入到聊天軟件客戶端的
77、主程序后,通過程序udpThread = new Thread(new ThreadStart(UdpReceiveMsg));udpThread.Start()開辟并啟用了udp的線程,而且調(diào)用了UDP的UdpReceiveMsg()的接收函數(shù),用來接收數(shù)據(jù),通過程序videoThread= new Thread(new ThreadStart(video));videoThread.Start()開辟并啟用了視頻線程,專門用來好友之
78、間的視頻、語音聊天,此線程調(diào)用了videoSocket.Listen(2007)函數(shù)用來對2007端口進(jìn)行監(jiān)聽。當(dāng)用戶1和用戶2之間要進(jìn)行視頻、語音聊天時(shí),用戶1雙擊用戶2頭像進(jìn)入與用戶2的視頻對話框中,點(diǎn)擊“請求視頻”按鈕后,來激發(fā)bt_video_Click(object sender, EventArgs e)事件的發(fā)生,此事件中包含了ReadyConnect(remoteIP, 2007, new ClassMsg("
79、RSC", my_id.ToString() , null))函數(shù),這個(gè)函數(shù)的功能是將帶有自己</p><p> 5 登錄、注冊模塊功能模塊及其它特殊功能模塊實(shí)現(xiàn)分析</p><p> 5.1 登錄模塊功能的具體實(shí)現(xiàn)</p><p> 登錄模塊是用戶身份的驗(yàn)證模塊,該聊天軟件系統(tǒng)通過服務(wù)器對用戶輸入的密碼和用戶ID與注冊時(shí)的用戶ID和密碼進(jìn)行比較,
80、來進(jìn)行對用戶身份的驗(yàn)證,看用戶是否有權(quán)限使用該聊天軟件。</p><p> 登錄模塊實(shí)現(xiàn)的具體步驟是首先在程序開辟一個(gè)單線程的程序入口點(diǎn),在客戶端主函數(shù)運(yùn)行時(shí),程序調(diào)用Client_Load(object sender, System.EventArgs e)函數(shù),將界面顯示為登錄界面,進(jìn)行登錄操作。當(dāng)用戶在登錄界面填寫完用戶ID與密碼時(shí),單擊登錄按鈕,此時(shí)調(diào)用button3_Click(object send
81、er, System.EventArgs e)事件,通過tcpc.Connect(ip,port)函數(shù)與服務(wù)器連接,并進(jìn)行異常處理。如果連接失敗,提示錯(cuò)誤信息;如果連接成功,通過調(diào)用SendMsg(NetworkStream ns)函數(shù)將登錄信息發(fā)送到服務(wù)器端來進(jìn)行相關(guān)驗(yàn)證,當(dāng)客戶端接收到從服務(wù)器發(fā)送的temp=="ACC"信息后,會顯示一個(gè)窗體說明登錄成功,點(diǎn)擊“完成”按鈕就完成登錄操作,進(jìn)入到用戶客戶端模式下。如
82、果從服務(wù)器端發(fā)送的信息為temp=="UAC",表明登錄失敗并彈出一個(gè)提示錯(cuò)誤信息窗體。單擊取消按鈕會調(diào)用button4_Click(object sender, System.EventArgs e)事件來關(guān)閉窗體以及客戶端程序。</p><p> 5.2 注冊模塊功能的具體實(shí)現(xiàn)</p><p> 注冊模塊的功能是可以讓用戶獲得使用該聊天軟件系統(tǒng)的權(quán)限,用戶可以通
83、過注冊來獲得登錄時(shí)的用戶ID號。雙擊應(yīng)用程序進(jìn)入登錄界面后,沒有注冊的用戶可以點(diǎn)擊登錄界面的“帳號申請”按鈕,這時(shí)程序就調(diào)用button1_Click(object sender, EventArgs e)事件,進(jìn)入到注冊模塊界面。然后填寫相關(guān)的注冊信息,單擊確定按鈕,調(diào)用button1_Click(object sender, EventArgs e)事件,先對填寫的信息進(jìn)行判斷,看是否有誤,如果有誤就顯示錯(cuò)誤提示信息;如果填寫信息正
84、確,就通過tcpc.Connect(serverip , port)函數(shù)對服務(wù)器進(jìn)行連接,并進(jìn)行異常處理。連接不成功時(shí),會提示錯(cuò)誤信息;如果連接成功,注冊信息會通過服務(wù)器寫入數(shù)據(jù)庫中。這時(shí)服務(wù)器就返回一個(gè)用戶ID號碼,觸發(fā) this.MyIDChange += new WinCtrlLib.UserCtrl.MyEvent(Myid_Change) 注冊程序中的事件發(fā)生,并調(diào)用Myid_Change(object sender, Win
85、CtrlLib.MyEventArgs e) 函數(shù)將服</p><p> 5.3 頭像閃動(dòng)功能的具體實(shí)現(xiàn)</p><p> 在用戶之間進(jìn)行聊天的過程中,如果用戶1向用戶2發(fā)送信息,用戶2在接收到用戶1信息的同時(shí),用戶1的頭像會在用戶2客戶端界面上不斷地閃爍,來提醒用戶2已經(jīng)接收到用戶1的信息,用戶2可以雙擊用戶1的頭像來查看用戶1所發(fā)的信息。</p><p>
86、 其實(shí)現(xiàn)相關(guān)代碼如下:</p><p> private void timer1_Tick(object sender, EventArgs e)</p><p><b> {</b></p><p> if (ChatWin.Createds == false && msgrec== true )</p>
87、<p><b> {</b></p><p><b> int i;</b></p><p> i = jishi % 2;</p><p> if (i == 1)</p><p><b> {</b></p><p> pb_u
88、ser.Visible = false;</p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> pb_user.Visible = true;</p><p>&
89、lt;b> }</b></p><p> jishi = i + 1;</p><p><b> }</b></p><p><b> }</b></p><p> ChatWin.Createds是建立好友對話框的變量,msgrec是接受好友信息的變量,申明一個(gè)變量i,
90、并且讓i等于jishi除以2的模,jishi等于i加1,也就是說,在這段代碼中i的值不是為1,就是為0,當(dāng)i等于1時(shí),客戶端界面則不顯示該好友的頭像,當(dāng)i等于0時(shí),該客戶端顯示該好友頭像,這段代碼調(diào)用了timer1_Tick(object sender, EventArgs e)這個(gè)方法,讓其每隔一段時(shí)間執(zhí)行一次jishi=i+1,讓i的值在1和0之間變化,這樣就可以達(dá)到接收到信息頭像閃爍的效果。當(dāng)好友對話框沒有建立并接收到好友信息時(shí),
91、這時(shí)條件符合,則開始頭像閃爍。如過好友對話框已經(jīng)建立或者沒接收到好友的信息,條件不符合,不執(zhí)行該段代碼,好友頭像不閃爍。</p><p> 6 系統(tǒng)的綜合測試與分析</p><p> 本設(shè)計(jì)是一個(gè)由兩人合作完成的一個(gè)多功能聊天軟件系統(tǒng),可以進(jìn)行文字聊天、文件傳輸、視頻聊天和語音聊天。使用步驟和功能類似于現(xiàn)今較為流行的聊天軟件QQ。因?yàn)樵摿奶燔浖墓δ苁羌弦黄鸬?,所以要將所有功能都?/p>
92、進(jìn)行測試,下面對該聊天軟件進(jìn)行了綜合的測試。</p><p> 用戶在使用這個(gè)聊天軟件系統(tǒng)時(shí)先要進(jìn)行注冊,來獲取登錄的ID號,用戶通過填寫注冊模塊中用戶名、密碼、頭像ID的相關(guān)內(nèi)容后,單擊確定按鈕,提交給服務(wù)器,服務(wù)器這時(shí)就會返回一個(gè)登錄ID給用戶,如圖8所示。</p><p><b> 圖8 注冊</b></p><p> 用戶在注冊
93、后,用獲得的ID號碼在登錄模塊中進(jìn)行登錄,用戶在登錄界面填寫用戶ID和密碼后,單擊“登錄”按鈕,會彈出一個(gè)登錄成功的對話框,則表示登錄成功。單擊該對話框中的按鈕,就會進(jìn)入客戶端界面。如果不想登錄則單擊登錄界面的“取消”按鈕。如圖9所示。</p><p> 用戶在登錄成功后會進(jìn)入客戶端界面。如果想和朋友進(jìn)行聊天,就用鼠標(biāo)雙擊該好友的頭像進(jìn)入與好友對話的界面,此時(shí)就可以與好友進(jìn)行對話。如圖10所示。</p&g
94、t;<p><b> 圖9 登錄頁面</b></p><p> 圖10 客戶端界面</p><p> 進(jìn)入到與好友的對話界面后,如果想與好友進(jìn)行語音、視頻聊天,那么單擊該界面上的“請求視頻”按鈕,好友就會收到你請求視頻聊天信息的對話框,好友同意,則單擊接收視頻按鈕,兩人就可以進(jìn)行視頻、語音聊天了,在界面的話筒和喇叭的圖片旁邊有兩個(gè)調(diào)節(jié)大小的組件
95、,話筒旁的是調(diào)節(jié)麥克的大小,喇叭旁的是調(diào)節(jié)耳機(jī)音量的大小,這樣就可以很方便的進(jìn)行語音聊天了。如圖11所示。</p><p> 圖11 視頻語音界面</p><p> 該多功能軟件聊天操作簡單、容易,在運(yùn)行時(shí)占有系統(tǒng)資源量少。但是其功能并不是很完善,不像QQ那樣人性化,在數(shù)據(jù)庫設(shè)計(jì)上,只實(shí)現(xiàn)了為用戶提供了用戶名、帳號、密碼等基本的信息,但在以后會進(jìn)行完善。</p><
96、;p><b> 結(jié) 論</b></p><p> 經(jīng)過這次對聊天系統(tǒng)軟件的開發(fā)與設(shè)計(jì),學(xué)到了很多知識,也對軟件開發(fā)的具體步驟有了更進(jìn)一步的了解。</p><p> 該系統(tǒng)由兩人合作完成,采用C/S結(jié)構(gòu),基于.NET開發(fā)環(huán)境,用C#語言進(jìn)行編譯,在開發(fā)與設(shè)計(jì)這個(gè)聊天系統(tǒng)軟件時(shí),對.NET開發(fā)環(huán)境有基本的認(rèn)識,并基本學(xué)會運(yùn)用C#的語言編譯簡單的程序。&l
97、t;/p><p> 此聊天軟件的開發(fā)是仿照現(xiàn)今國內(nèi)最為流行的即時(shí)聊天工具“騰迅QQ”設(shè)計(jì),實(shí)現(xiàn)的基本功能與QQ相似:可以實(shí)現(xiàn)注冊、登錄、添加好友、文字傳輸、文件傳輸、視頻聊天、語音聊天等的功能。</p><p> 在開發(fā)此軟件過程中,本人主要承擔(dān)視頻聊天與語音聊天開發(fā)、設(shè)計(jì)與實(shí)現(xiàn)。在開發(fā)過程中,對網(wǎng)絡(luò)多媒體基礎(chǔ)知識有了初步的認(rèn)識,也對有關(guān)VFW的基本功能有所初步的了解。</p>
98、<p> 通過這次由兩人合作開發(fā)、合作完成的這個(gè)聊天系統(tǒng),深刻的感受到在軟件開發(fā)過程中團(tuán)隊(duì)協(xié)作的重要性。</p><p> 隨著互聯(lián)網(wǎng)技術(shù)、計(jì)算機(jī)技術(shù)的發(fā)展,聊天工具的功能不斷的完善,使其具有人性化,受到更多用戶的青睞。在未來的網(wǎng)絡(luò)世界里,聊天工具會得到更多人喜愛,其功能也會隨著技術(shù)的進(jìn)步而不斷地完善。</p><p><b> 參考文獻(xiàn)</b>&
99、lt;/p><p> [1] 張青,郭亞萍.C#編程思想與實(shí)踐[M].北京:冶金工業(yè)出版社,2005。</p><p> [2] 陳明.實(shí)用軟件工程基礎(chǔ)[M].北京:清華大學(xué)出版社,2002。</p><p> [3] 黃德志,湯慶恩.C#程序設(shè)計(jì)實(shí)用教程[M].北京:冶金工業(yè)出版社,2002。</p><p> [4] 王敏.C#線程參
100、考手冊[M].北京:清華大學(xué)出版社,2003。</p><p> [5] 葛昊晗,燙涌濤,李強(qiáng).C#大學(xué)教程[M].北京:清華大學(xué)出版社,2003。</p><p> [6] 李澤,陳彬,唐俊瞿,張曜.C#函數(shù)實(shí)用手冊[M].北京:冶金工業(yè)出版社,2006。</p><p> [7] 熊盛心,許志慶,李欽.Visual C# .NET語言參考手冊[M].北京:
101、清華大學(xué)出版社,2002。</p><p> [8] 仇谷烽,澎洪洪.Visual C# .NET網(wǎng)絡(luò)編程[M].北京:清華大學(xué)出版社,2004。</p><p> [9] 四維科技,劉袆瑋.Visual C++視頻/音頻開發(fā)實(shí)用工程案例精選[M].北京:人民郵電出版社,2004。</p><p><b> 致 謝</b></
102、p><p> 本文是在XX老師和XX老師的熱情關(guān)心和指導(dǎo)下完成的,他們淵博的知識和嚴(yán)謹(jǐn)?shù)闹螌W(xué)作風(fēng)使我受益匪淺,對順利完成本課題起到了極大的作用。在此向他們表示我最衷心的感謝!</p><p> 感謝XX老師和XX老師在課題研究初期給予的幫助,在XX和XX的幫助下課題才得以很好的展開,有了一個(gè)很好的開端!感謝XX同學(xué)在問卷調(diào)查中給予的幫助,因?yàn)樗麄兊膮f(xié)助,才得以高效率的完成了所有問卷調(diào)查,獲
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 畢業(yè)論文——多功能聊天軟件的設(shè)計(jì)與開發(fā)--音頻視頻聊天模塊
- 多功能聊天軟件的設(shè)計(jì)與開發(fā)——音頻視頻聊天模塊.doc
- 多功能聊天軟件的設(shè)計(jì)與開發(fā)——音頻視頻聊天模塊.doc
- 計(jì)算機(jī)畢業(yè)設(shè)計(jì)---軟件學(xué)院網(wǎng)站設(shè)計(jì)
- 計(jì)算機(jī)(軟件)畢業(yè)設(shè)計(jì)--航空訂票系統(tǒng)
- 計(jì)算機(jī)審計(jì)軟件的設(shè)計(jì)與開發(fā).pdf
- linux平臺下的聊天軟件的設(shè)計(jì)與開發(fā)畢業(yè)設(shè)計(jì)
- 計(jì)算機(jī)科學(xué)與技術(shù)畢業(yè)設(shè)計(jì)--web應(yīng)用開發(fā)
- 計(jì)算機(jī)科學(xué)與技術(shù)畢業(yè)設(shè)計(jì)--web應(yīng)用開發(fā)
- 計(jì)算機(jī)畢業(yè)設(shè)計(jì)---計(jì)算機(jī)病毒的研究與防治
- 計(jì)算機(jī)科學(xué)與技術(shù)畢業(yè)設(shè)計(jì)-基于網(wǎng)絡(luò)的任務(wù)調(diào)度管理軟件設(shè)計(jì)與開發(fā)
- 計(jì)算機(jī)科學(xué)與技術(shù)畢業(yè)設(shè)計(jì)
- 計(jì)算機(jī)科學(xué)與技術(shù)畢業(yè)設(shè)計(jì)論文∶web應(yīng)用開發(fā)
- 計(jì)算機(jī)畢業(yè)設(shè)計(jì)90范文_asp軟件學(xué)院網(wǎng)站
- 計(jì)算機(jī)畢業(yè)設(shè)計(jì)90范文_asp軟件學(xué)院網(wǎng)站
- 畢業(yè)設(shè)計(jì)---《計(jì)算機(jī)網(wǎng)絡(luò)》課程開發(fā)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 多功能溫室的計(jì)算機(jī)測控系統(tǒng)的設(shè)計(jì)與研究.pdf
- 計(jì)算機(jī)電源設(shè)計(jì)【畢業(yè)設(shè)計(jì)】
- 計(jì)算機(jī)遠(yuǎn)程維護(hù)畢業(yè)設(shè)計(jì)
- 計(jì)算機(jī)網(wǎng)站畢業(yè)設(shè)計(jì)
評論
0/150
提交評論