多功能聊天軟件的設(shè)計與開發(fā)(有源程序代碼)——文字聊天文件傳輸模塊_第1頁
多功能聊天軟件的設(shè)計與開發(fā)(有源程序代碼)——文字聊天文件傳輸模塊_第2頁
多功能聊天軟件的設(shè)計與開發(fā)(有源程序代碼)——文字聊天文件傳輸模塊_第3頁
多功能聊天軟件的設(shè)計與開發(fā)(有源程序代碼)——文字聊天文件傳輸模塊_第4頁
多功能聊天軟件的設(shè)計與開發(fā)(有源程序代碼)——文字聊天文件傳輸模塊_第5頁
已閱讀5頁,還剩22頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、多功能聊天軟件的設(shè)計與開發(fā)(有源程序代碼)文字聊天文件傳輸模塊 源程序代碼等全套設(shè)計聯(lián)系 174320523 各專業(yè)都有分類號:TP311.1 U D C:D10621-408-2007 5725-0密 級:公 開編 號:2003214019成都信息工程學(xué)院學(xué)位論文多功能聊天軟件的設(shè)計與開發(fā) ?文字聊天/文件傳輸模塊論文作者姓名:王 強(qiáng)申請學(xué)位專業(yè):計算機(jī)科學(xué)與技術(shù) 申請學(xué)位類別:工學(xué)學(xué)士指導(dǎo)教師姓名(職稱):張仕斌(副教授)論文提交日期:2007年06月 10 日多功能聊天軟件的設(shè)計與開發(fā) ?文字聊天/文件傳輸模塊摘 要 當(dāng)前中國的互聯(lián)網(wǎng)技術(shù)已經(jīng)進(jìn)入了一個飛速開展的時期,即時通訊工具作為當(dāng)今

2、網(wǎng)絡(luò)應(yīng)用的主流,越來越受到了人們的青睞,使人們的網(wǎng)上生活更加豐富多彩。當(dāng)今使用最為廣泛的即時通信工具?聊天軟件,可以方便人們隨時隨地進(jìn)行在線交流,比方騰訊公司的聊天軟件。本畢業(yè)設(shè)計就是模擬聊天軟件,開發(fā)一個包括文字聊天、文件傳輸、語音及視頻交流等功能的聊天軟件。 本設(shè)計的開發(fā)采用C/S結(jié)構(gòu),在基于.NET開發(fā)環(huán)境下,使用C#編程語言進(jìn)行開發(fā)。本文首先論述國內(nèi)外聊天工具的開展情況和現(xiàn)今的開展方向,并對開發(fā)環(huán)境和開發(fā)語言進(jìn)行了簡單介紹;對本設(shè)計所要開發(fā)的多功能聊天軟件作了較為全面的需求分析,并給出了多功能聊天軟件的設(shè)計方案,主要功能包括文字聊天、文件傳輸、語音聊天及視頻聊天等;本畢業(yè)設(shè)計主要實現(xiàn)的

3、是多功能聊天軟件的局部功能,即文字聊天、文件傳輸?shù)裙δ?主要完成的任務(wù)包括效勞器模塊的設(shè)計、數(shù)據(jù)庫的設(shè)計、添加好友、文字聊天和文件傳輸?shù)裙δ?。與另一位同學(xué)開發(fā)實現(xiàn)的語音聊天與視頻聊天模塊集成在一起,構(gòu)成一個實用的、功能完善的聊天軟件,到達(dá)預(yù)期目標(biāo);通過運行、測試與分析,該多功能聊天軟件運行穩(wěn)定、可靠,具有一定的實用價值。 關(guān)鍵詞:聊天軟件;文字聊天;文件傳輸;C/S結(jié)構(gòu);聊天軟件Design and Development of the Multi-function Chat Software?Writing/File Transferring ModuleAbstract Nowadays,

4、China's Internet technology has already entered a rapid development times, the instant messenger takes now the mainstream of network application, which causes people's online life to be more richly colorful, and has also received people's favors simultaneously. At present, the most wides

5、pread instant messenger?chat software, may facilitate the people to carry on the online information exchange at anytime and anywhere, for instance the chat software of Tencent company. This graduation project simulates chat software, and develops a chat software that includes the writing, file trans

6、fer, audio chat, video chat and so on 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 elaborates the development situation of domestic and foreign chats tool and the development directio

7、n nowadays, and has carried on the simple introduction to the development environment and the development language. The demand of multi-function chat software is analyzed in detail, and its plan is provided. Its main functions include the writing, file transfer, audio and video chat and etc. This gr

8、aduation project mainly realizes the partial functions of multi-function chat software, namely the writing chat, the file transfer and so on, which mainly realizes the design of server module, the design of database, adding of good friend, writing chat, file transfer and so on. Finally, this design

9、integrates the functions that another schoolmate designs the writing and file transfer, which forms chat software of practical and full functions. This software achieves the anticipated target. By running, testing and analyzing, it shows that this multi-function chat software is stable, reliable, an

10、d has some practical values. Key words: Chat Software; Writing Chat; File Transfer; C/S Structure; Chat Software目 錄 論文總頁數(shù):24頁1 引言11.1 課題背景11.2 國內(nèi)的開展現(xiàn)狀11.3 本課題研究的意義21.4 本文的主要工作22 系統(tǒng)需求分析23 開發(fā)環(huán)境及開發(fā)工具33.1 開發(fā)環(huán)境的概述33.2 C#語言的概述53.3 SQL數(shù)據(jù)庫的介紹54 多功能聊天軟件的設(shè)計方案64.1 聊天系統(tǒng)流程的分析與設(shè)計64.2 數(shù)據(jù)庫模塊的分析與設(shè)計74.3 添加好友模塊的分析與設(shè)計8

11、4.4 效勞器模塊的分析與設(shè)計95 文字聊天、文件傳輸模塊的設(shè)計與分析95.1 文字聊天模塊的分析95.2 文字聊天模塊功能具體實現(xiàn)95.3 文件傳輸模塊的分析125.4 文件傳輸模塊功能具體實現(xiàn)136 添加好友、效勞器以及其它特殊功能模塊實現(xiàn)分析156.1 添加好友模塊功能具體實現(xiàn)156.2 效勞器模塊功能具體實現(xiàn)156.3 好友信息窗體顯示、排序功能具體實現(xiàn)167 系統(tǒng)的綜合測試與分析17結(jié) 論21參考文獻(xiàn)22致 謝23聲 明241 引言 1.1 課題背景 隨著互聯(lián)網(wǎng)應(yīng)用越來越豐富,以快速、交互、簡便為代表的即時通訊工具,已經(jīng)成為當(dāng)前網(wǎng)絡(luò)用戶最喜愛的網(wǎng)絡(luò)溝通工具。聊天軟件作為當(dāng)今使用最為廣

12、泛的即時性通信工具之一,給互聯(lián)網(wǎng)上的用戶提供了諸多的效勞,如文字聊天、文件傳輸、語音聊天、視頻聊天等功能。作為即時通訊工具最具增長潛力之一的聊天軟件,不僅在根底應(yīng)用方面,還是產(chǎn)品擴(kuò)展應(yīng)用方面都將有質(zhì)的飛躍,它為滿足人們的需要,將其功能不斷的完善。隨著聊天軟件功能的不斷完善,用戶通過聊天軟件在互聯(lián)網(wǎng)上盡情的交談,不但可以文字聊天和文件傳輸,還可以通過語音、視頻來聊天。在今后隨著互聯(lián)網(wǎng)技術(shù)的開展,聊天軟件也在以前所未有的速度改變著人們的生活方式,它必定會成為人們網(wǎng)絡(luò)生活不可缺少的一局部。 1.2 國內(nèi)外的開展現(xiàn)狀 1996年11月ICQ在全球發(fā)布,拉開了互聯(lián)網(wǎng)IM(Instant Messenge

13、r,即時通訊)應(yīng)用的序幕。就是這樣一款小軟件在短短數(shù)年時間里開展出一個巨大的IM產(chǎn)業(yè)。 時至今日,即時性通訊工具早已成為最熱門的網(wǎng)絡(luò)應(yīng)用之一。國內(nèi)外的聊天工具舉不勝數(shù)。ICQ作為全球第一款即時性通訊工具,在經(jīng)過短短數(shù)年的開展,其行業(yè)內(nèi)的地位如今已是無人能夠撼動。ICQ名字取自英文“I seek you的諧音,即是“我找你的意思。最初的ICQ只有兩個特性,即用戶列表和即時聊天。但一經(jīng)推出就受到眾多網(wǎng)民的喜愛,6個月內(nèi)其注冊用戶迅速攀升至85萬,1998年它的用戶數(shù)量更是翻了10數(shù)倍,到達(dá)了1200萬人。ICQ的迅猛開展也讓當(dāng)時的互聯(lián)網(wǎng)領(lǐng)頭羊Yahoo和在桌面軟件領(lǐng)域獨步天下的微軟嗅到了商機(jī),它們

14、分別推出了Yahoo Messenger、MSN Messenger和曇花一現(xiàn)的MS Chat。即時通訊市場雛形頓顯,有了國際互聯(lián)網(wǎng)巨頭和最大軟件公司的融入,即時通訊時代的大幕就此徐徐拉開。 當(dāng)ICQ風(fēng)行全球的時候,在國內(nèi)各種仿ICQ的中文IM軟件也紛紛推出,時至今日,占據(jù)國內(nèi)的市場的主要是騰訊公司的、微軟的MSN、雅虎的雅虎通等。其中騰訊公司的以占據(jù)了國內(nèi)70%以上的市場。 隨著IM應(yīng)用的深入,其功能早已超越了初期的即時文字聊天。表情圖標(biāo)早已成為各個IM軟件的標(biāo)準(zhǔn)功能,文件傳輸、語音/視頻聊天、游戲、網(wǎng)上交友等高級功能也正越來越多地被集成進(jìn)入IM應(yīng)用。事實說明,現(xiàn)在的IM已不再是一個簡單的溝

15、通工具,而是一個信息資訊、交流互動、休閑娛樂中心,IM平臺上的語音、視頻、音樂點播、信息共享等新應(yīng)用層出不窮。開展到現(xiàn)在,IM軟件越來越成熟,IM產(chǎn)業(yè)鏈也已經(jīng)形成,已經(jīng)成為現(xiàn)代人和現(xiàn)代經(jīng)濟(jì)中不可或缺的一部份,相信未來IM軟件的道路會更加寬廣和精彩。 1.3 本課題研究的意義 21世紀(jì)是信息的時代,隨著互聯(lián)網(wǎng)技術(shù)的開展,信息在傳遞方面也有了嶄新的一面?,F(xiàn)今聊天軟件成為信息傳遞最為廣泛的應(yīng)用工具,它發(fā)揮了即時性通信的特點,可以讓用戶在第一時間內(nèi)得到信息的交流,它不僅可以讓用戶進(jìn)行文字聊天,而且還增添語音、視頻功能。這樣可以讓網(wǎng)上的好友身臨其境的面對面的聊天,讓彼此之間更為深入的了解。人性化的設(shè)計讓

16、每個用戶都可以得心應(yīng)手的使用,從而獲得更多人的青睞。Internet的出現(xiàn)連通了整個世界,而聊天軟件的出現(xiàn)那么連通了每一位網(wǎng)上的用戶。隨著網(wǎng)絡(luò)應(yīng)用的開展,聊天軟件已經(jīng)成為最熱門的網(wǎng)絡(luò)應(yīng)用之一。經(jīng)歷了近幾年突飛猛進(jìn)的開展之后,即時通訊工具早已不再是簡單的互聯(lián)網(wǎng)通訊工具,它已經(jīng)成為一個集互動交流、休閑娛樂、信息管理為一體的多元化互聯(lián)網(wǎng)應(yīng)用平臺??傊?聊天軟件的出現(xiàn)給人們彼此之間的溝通帶來了無比的方便,人們可以通過聊天軟件建立深刻的友情,讓人們在互聯(lián)網(wǎng)上的交流更加充滿活力與生機(jī)。 1.4 本文的主要工作聊天軟件作為使用最為廣泛的即時性通訊工具,它在擁有文字聊天根底功能的同時,為滿足用戶的需求,還增加

17、了文件傳輸、語音、視頻聊天等主要的功能,成為現(xiàn)在最為主流的網(wǎng)上應(yīng)用軟件。本論文主要對聊天軟件的文字聊天、文件傳輸功能進(jìn)行分析與研究,總結(jié)出實現(xiàn)的相關(guān)理論與知識。首先論述了聊天軟件對人們的生活有何影響,結(jié)合國內(nèi)外的聊天軟件的開展?fàn)顩r,談?wù)劻奶燔浖泻我饬x;然后對此聊天軟件系統(tǒng)進(jìn)行了較為詳細(xì)的分析;對開發(fā)環(huán)境和工具進(jìn)行了說明;提出了該多功能聊天軟件的設(shè)計方案;在本次多功能聊天軟件的設(shè)計與開發(fā)中,作者主要負(fù)責(zé)設(shè)計開發(fā)效勞器模塊、數(shù)據(jù)庫模塊、添加好友模塊、文字聊天模塊、文件傳輸模塊,并對此聊天軟件系統(tǒng)的效勞器模塊、數(shù)據(jù)庫模塊、添加好友模塊、文字聊天模塊、文件傳輸模塊的設(shè)計與開發(fā)進(jìn)行了較為詳細(xì)的說明與分

18、析。 2 系統(tǒng)需求分析 此聊天軟件系統(tǒng)是模擬現(xiàn)今國內(nèi)最為流行的即時性通訊工具,其功能類似于,能夠?qū)崿F(xiàn)注冊、登錄、添加好友、文字聊天、文件傳輸、語音聊天、視頻聊天等功能。該聊天軟件系統(tǒng)是采用C/S結(jié)構(gòu),也就是客戶端與效勞器端的結(jié)構(gòu)體系,基于對該聊天軟件功能的分析,分別對客戶端與效勞器端進(jìn)行了設(shè)計。 該聊天軟件的效勞器端是用來實現(xiàn)對客戶端提交的用戶信息進(jìn)行處理的功能。效勞器設(shè)計內(nèi)容包含:信息接收、注冊、登錄、刷新、更新、用戶退出處理、添加好友等。信息接收是提供效勞器接受用戶端發(fā)送信息的功能;注冊是效勞器接受到用戶的注冊信息請求后,并將其請求信息寫入到數(shù)據(jù)庫,為用戶的注冊提了相關(guān)效勞;登錄是效勞器通

19、過驗證登錄時信息來實現(xiàn)相關(guān)效勞; 刷新是效勞器每過一段時間用來刷新一次,來顯示用戶當(dāng)前在效勞器的信息狀況,如在線狀態(tài)等;更新是效勞器對用戶在效勞器中信息操作進(jìn)行相關(guān)的效勞;用戶退出處理是效勞器在用戶推出聊天系統(tǒng)后作出的相關(guān)處理工作;好友添加是效勞器將用戶的好友信息寫入數(shù)據(jù)庫中用戶好友表的操作。 客戶端既是用戶使用的應(yīng)用程序端,用戶通過該聊天軟件的客戶端來實現(xiàn)網(wǎng)上聊天的相關(guān)功能:注冊、登錄、添加好友、文字聊天、文件傳輸、語音聊天、視頻聊天等。注冊的功能是提交用戶相關(guān)信息以及獲得一個屬于自己登錄該聊天軟件系統(tǒng)的用戶ID號;登錄的功能是實現(xiàn)驗證用戶信息與合法使用該聊天軟件系統(tǒng)的權(quán)限;添加好友是實現(xiàn)用

20、戶之間好友添加功能;添加好友成功后,就可以與好友之間開始文字聊天、文件傳輸、語音聊天、視頻聊天等功能。 (1)該效勞器的運行環(huán)境: 操作系統(tǒng):windows2000或windows2003; 內(nèi)存:256M以上(最低為256M); CPU:IntelR CeleronR 2.0GHz或AMD 1800+以上均可; 其它:Microsoft .NET Framework SDK。 (2)客戶端的運行環(huán)境: 操作系統(tǒng):windows XP或windows2003等; 內(nèi)存:256M以上(最低為256M); CPU:IntelR CeleronR 2.0GHz或AMD 1800+以上均可; 攝像頭、

21、耳機(jī)等外部設(shè)備。 第一次使用系統(tǒng)的用戶通過填寫個人信息來注冊,效勞器返回一個注冊ID號給注冊用戶,用來登錄用。已經(jīng)注冊的用戶可以在驗證他的登錄信息(一般指用戶名和密碼)后登錄系統(tǒng)。在線用戶通過查看所要添加好友的用戶列表相關(guān)的信息,并且向添加好友發(fā)送請求添加的信息,好友通過驗證后,向請求方發(fā)送同意添加消息,請求方添加完成后,并把相關(guān)信息存入到好友表的數(shù)據(jù)庫中。在添加完好友后,兩人同時在線時,就可以聊天了。3 開發(fā)環(huán)境及開發(fā)工具 3.1 開發(fā)環(huán)境的概述 微軟發(fā)布了.NET開發(fā)平臺,這是自1993年7月隨著Windows NT3.0出現(xiàn)的Win32 API后微軟軟件開發(fā)平臺的第一次大升級。比起Win

22、16來,Win32提供了更多功能強(qiáng)大的API,但沒有對工具和技術(shù)進(jìn)行引人注目的改變。與之不同的是,.NET開發(fā)平臺在開發(fā)者用以創(chuàng)造應(yīng)用程序的工具和技術(shù)上做了根本的改變。 .NET開發(fā)平臺使得開發(fā)者創(chuàng)立運行在Internet Information Server IIS(互聯(lián)網(wǎng)信息效勞器)Web效勞器上的Web應(yīng)用程序更為容易,它也使創(chuàng)立穩(wěn)定、可靠而又平安的Windows桌面應(yīng)用程序更為容易。 .NET開發(fā)平臺包括以下內(nèi)容: (1).NET Framework(架構(gòu)),包括:Common Language Runtime(CLR)(通用語言運行環(huán)境),這是用于運行和加載應(yīng)用程序的軟件組件;新的類

23、庫,分級組織了開發(fā)者可以在他們的應(yīng)用程序中用來顯示圖形用戶界面、訪問數(shù)據(jù)庫和文件以及在Web上通信的代碼集。 (2).NET開發(fā)者工具,包括:Visual Studio .NET Integrated Development Environment (IDE)(Visual Studio .NET集成開發(fā)環(huán)境),用來開發(fā)和測試應(yīng)用程序。 (3).NET編程語言(例如Visual Basic .NET和新的Visual C#),用來創(chuàng)立運行在CLR下并且使用類庫的應(yīng)用程序。 (4)ASP .NET,一個取代以前的Active Server Pages (ASP)的特殊類庫,用來創(chuàng)立動態(tài)的Web內(nèi)

24、容和Web效勞器應(yīng)用程序,這些都將采用諸如6>HTML、XML和Simple Object Access Protocol(SOAP)(簡單對象訪問協(xié)議)等Internet協(xié)議和數(shù)據(jù)格式。 .NET開發(fā)平臺是一組用于建立Web效勞器應(yīng)用程序和Windows桌面應(yīng)用程序的軟件組件,用該平臺創(chuàng)立的應(yīng)用程序在Common Language Runtime(CLR)(通用語言運行環(huán)境)(底層)的控制下運行。CLR是一個軟件引擎,用來加載應(yīng)用程序,確認(rèn)它們可以沒有錯誤地執(zhí)行,進(jìn)行相應(yīng)的平安許可驗證,執(zhí)行應(yīng)用程序,然后在運行完成后將它們?nèi)コ?類庫集提供了使應(yīng)用程序可以讀寫XML數(shù)據(jù)、在Intern

25、et上通信、訪問數(shù)據(jù)庫等的代碼。所有的類庫都建立在一個根底的類庫之上,它提供管理使用最為頻繁的數(shù)據(jù)類型(例如數(shù)值或文本字符串)的功能,以及諸如文件輸入/輸出等底層功能。 Web效勞器應(yīng)用程序通常依賴于ASP.NET,一個處理Web請求的效勞器端的庫。ASP.NET又依賴一個用于發(fā)送和接收SOAP信息的Web Services庫,以及一個用于以瀏覽器接收用戶輸入并動態(tài)地生成Web頁面以示響應(yīng)的Web用戶接口(UI)(有時稱作Web 表單)。Windows桌面應(yīng)用程序通過使用Win表單庫(也稱作Windows 表單)可以顯示一個圖形UI。 最后,Visual Studio .NET提供了一個用于在

26、該平臺上創(chuàng)立應(yīng)用程序的圖形Integrated Development Ewironment(IDE)(集成開發(fā)環(huán)境)。程序員可以使用一種或多種.NET編程語言,來編寫他們的代碼,例如微軟的Visual Basic .NET(VB.NET),Visual C+, Visual C#和JScrjpt .NET等。大量其它的.NET編程語言可以從第三方廠商獲得。 3.2 C#語言的概述 C#是一種面向?qū)ο蟮恼Z言,它功能強(qiáng),易于表現(xiàn),使用靈活。通過C#可以讓開發(fā)人員快速的建立大范圍的基于微軟新的.NET的平臺的應(yīng)用,并且提供大量的開發(fā)工具和效勞幫助開發(fā)人員開發(fā)基于計算和通信的各種應(yīng)用。由于其優(yōu)良的面

27、向?qū)ο笤O(shè)計,在構(gòu)建從高級業(yè)務(wù)對象到系統(tǒng)應(yīng)用的各種不同組件時,C#是一個首要的選擇。使用簡易的C#語言構(gòu)造,組件可以被轉(zhuǎn)換為WEB效勞,從而允許從運行在任何操作系統(tǒng)上的任何語言中跨越Internet調(diào)用它們。不僅僅如此,C#的設(shè)計為C+程序員帶來了快速的開發(fā)能力,而不用犧牲C+已有的功能和控制能力。C#高度保持了與C和C+的一致性。從繼承角度來看,C#在更高層次上重新實現(xiàn)了C/C+,熟悉C/C+的開發(fā)的人員可以很快的轉(zhuǎn)變?yōu)镃#開發(fā)人員。 C#的重要特性: (1)開發(fā)效率與平安性; (2)與Web開發(fā)相結(jié)合; (3)減少了開發(fā)中的錯誤; (4)提供內(nèi)置的版本支持來減少開發(fā)費用; (5)更好的結(jié)合商

28、業(yè)應(yīng)用中的流程與軟件實現(xiàn); (6)可擴(kuò)展的協(xié)作能力。 3.3 SQL Server數(shù)據(jù)庫的介紹 SQL是Structured Query Language(結(jié)構(gòu)化查詢語言)的縮寫,是用戶操作關(guān)系數(shù)據(jù)庫的通用語言。SQL雖然叫結(jié)構(gòu)化查詢語言,其查詢操作確實是數(shù)據(jù)庫中的主要操作,但并不是說SQL語言只支持查詢操作,它實際上包含數(shù)據(jù)定義、數(shù)據(jù)操縱和數(shù)據(jù)控制等與數(shù)據(jù)庫有關(guān)的全部功能。 Microsoft SQL Server 2000是一個分布式的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),具有客戶機(jī)/效勞器體系結(jié)構(gòu),采用了Transact-sql的sql語言在客戶機(jī)與效勞器間傳遞客戶機(jī)的請求與效勞器的處理結(jié)果。眾所周知,

29、SQL Server 2000能夠滿足今天的商業(yè)環(huán)境要求不同類型的數(shù)據(jù)庫解決方案。它一種應(yīng)用廣泛的數(shù)據(jù)庫管理系統(tǒng),具有許多顯著的優(yōu)點:易用性、適合分布式組織的可伸縮性、用于決策支持的數(shù)據(jù)倉庫功能、與許多其他效勞器軟件緊密關(guān)聯(lián)的集成性、良好的性價比等。性能、可伸縮性及可靠性是根本要求,而進(jìn)入市場時間也非常關(guān)鍵。除這些核心企業(yè)品質(zhì)外,SQL Server 2000還為您的數(shù)據(jù)管理與分析帶來了靈活性,允許單位在快速變化的環(huán)境中沉著響應(yīng),從而獲得競爭優(yōu)勢。從數(shù)據(jù)管理和分析角度看,將原始數(shù)據(jù)轉(zhuǎn)化為商業(yè)智能和充分利用Web帶來的時機(jī)非常重要。作為一個完備的數(shù)據(jù)庫和數(shù)據(jù)分析包,SQL Server 2000

30、為快速開發(fā)新一代企業(yè)級商業(yè)應(yīng)用程序、為企業(yè)贏得核心競爭優(yōu)勢翻開了勝利之門。作為重要的基準(zhǔn)測試可伸縮性和速度獎的記錄保持者,SQL Server 2000是一個具備完全Web支持的數(shù)據(jù)庫產(chǎn)品,提供了對可擴(kuò)展標(biāo)記語言XML的核心支持以及在Internet上和防火墻外進(jìn)行查詢的能力。4 多功能聊天軟件的設(shè)計方案 4.1 聊天系統(tǒng)流程的分析與設(shè)計 此聊天軟件是采用C/S結(jié)構(gòu),其系統(tǒng)流程圖如圖1所示。圖1 系統(tǒng)流程圖 使用這個聊天軟件的用戶必須先進(jìn)行注冊,在登錄窗體用戶單擊注冊按鈕,激活注冊窗體。填寫相關(guān)的注冊信息,提交給效勞器。效勞器將注冊信息提交給數(shù)據(jù)庫,并由效勞器按注冊順序生成一個用戶ID號返回給

31、注冊用戶,這樣注冊就完成了。然后用戶用注冊成功的ID號和注冊時的密碼進(jìn)行登錄。用戶在登錄窗口填寫用戶ID和用戶密碼,由客戶端將登錄信息提交給效勞器,效勞器根據(jù)數(shù)據(jù)庫中存儲的用戶信息與客戶端提交的登錄信息進(jìn)行比擬,比擬一致后,那么返回一個登錄成功地確認(rèn)信息給客戶端,當(dāng)客戶端收到這個確認(rèn)信息時,那么激活本聊天軟件的客戶端主窗體。這時你要與好友進(jìn)行聊天,那么必須添加好友,比方用戶2要添加用戶N為好友,用戶2首先向用戶N發(fā)出添加好友請求信息,用戶N接受到用戶2的信息,并通過驗證發(fā)送確認(rèn)反應(yīng)信息給用戶2,并且向效勞器提交好友添加確認(rèn)信息,這時效勞器就會更新相應(yīng)用戶的好友列表中的信息。好友添加完成后,用戶

32、之間就可以進(jìn)行彼此之間的通信,如文字聊天、視頻聊天、語音聊天、文件傳輸?shù)取?以上如圖1為多功能聊天軟件系統(tǒng)的總體流程圖,其中包括了登錄模塊、注冊模塊、添加好友模塊、效勞器模塊、數(shù)據(jù)庫模塊等。在這個多功能聊天軟件系統(tǒng)開發(fā)設(shè)計與實現(xiàn)中,作者主要負(fù)責(zé)效勞器模塊、數(shù)據(jù)庫模塊、添加好友模塊、文字聊天與文件傳輸功能模塊的設(shè)計與實現(xiàn)。下面就對數(shù)據(jù)庫模塊與添加好友模塊的流程和效勞器模塊進(jìn)行了分析。 4.2 數(shù)據(jù)庫模塊的分析與設(shè)計 該聊天系統(tǒng)的數(shù)據(jù)庫設(shè)計的目的是保存用戶信息,為用戶之間的通信提供相關(guān)的數(shù)據(jù)效勞,比方在用戶登錄時,在登錄模塊中輸入的相關(guān)信息(用戶ID、密碼),就要和數(shù)據(jù)庫中已有的相關(guān)信息進(jìn)行比擬,

33、如果相同就說明登錄成功,如果不一致那么要重新登錄。其設(shè)計思路是:首先建立一個用戶信息總表,這張表包括每個人的詳細(xì)信息,如用戶名、用戶ID、用戶頭像編號等,是在用戶注冊時,將信息寫入該用戶信息總表內(nèi);然后當(dāng)一個用戶注冊成功后,效勞器就會自動生成一個該用戶的好友表,該表中存放的是該用戶添加的好友信息,在登錄成功后的客戶端界面的好友信息就來源于此好友表,這樣兩個在線的好友之間就可以通信了。圖2所示,為此聊天系統(tǒng)的數(shù)據(jù)庫總體設(shè)計結(jié)構(gòu)圖。圖2 數(shù)據(jù)庫結(jié)構(gòu)圖 由于聊天系統(tǒng)的作用是提供用戶之間通信,也就是說它的實體就是用戶,所以數(shù)據(jù)庫表的關(guān)系就為用戶表與用戶表之間的關(guān)系。圖3為此聊天工具的數(shù)據(jù)庫的E-R圖,

34、它表達(dá)了用戶1表(用戶1ID,用戶1姓名,用戶1頭像ID等),其中“用戶1ID為主鍵;用戶2表(用戶2ID,用戶2姓名,用戶2頭像ID等),其中“用戶2ID為主鍵。他們之間的關(guān)系是1:1關(guān)系,也就是說用戶1的好友表只能添加一個用戶2為好友,用戶2的好友表只存在一個用戶1的ID號。用戶1可以添加N個用戶為好友,但這些好友的ID號信息在用戶1的好友表中是唯一的。圖3 E-R圖 4.3 添加好友模塊的分析與設(shè)計 用戶1通過效勞器查詢數(shù)據(jù)庫中已有的好友資料,并向所要添加的好友發(fā)送添加請求,用戶2接收到用戶1的請求,經(jīng)過驗證將消息發(fā)送給用戶1,用戶1接收到同意添加消息后,添加用戶2位好友,并將用戶2的信

35、息存入到用戶1的好友表中,同時用戶2也將用戶1的信息存入用戶2的好友表中,并把相關(guān)信息提交給效勞器,讓效勞器對數(shù)據(jù)庫進(jìn)行發(fā)更新。圖4為添加好友系統(tǒng)流程。圖4 添加好友系統(tǒng) 4.4 效勞器模塊的分析與設(shè)計 該效勞器的作用是對數(shù)據(jù)進(jìn)行處理,整個聊天系統(tǒng)依靠效勞器對數(shù)據(jù)的處理來運行,比方登錄功能、注冊功能、添加好友功能等都是利用效勞器對數(shù)據(jù)的處理來實現(xiàn)的,如圖5所示,為效勞器運行時的狀況。圖5 效勞器運行圖 本設(shè)計主要完成的是文字聊天、文件傳輸模塊,以及添加好友、效勞器模塊和特殊功能模塊,下面對其設(shè)計進(jìn)行實現(xiàn)進(jìn)行詳細(xì)說明。5 文字聊天、文件傳輸模塊的設(shè)計與分析 5.1 文字聊天模塊的分析 文字聊天是

36、聊天工具最早的信息傳遞方式,用戶通過打字,將信息傳遞給好友。至今為止,文字聊天在網(wǎng)絡(luò)聊天中是應(yīng)用最為廣泛的聊天方式。其實現(xiàn)原理是:通信雙方通過Socket套結(jié)字進(jìn)行文字信息的傳輸。用戶雙方通過Socket套結(jié)字建立連接,并將文字信息以數(shù)據(jù)流的形式進(jìn)行發(fā)送。如圖6所示,為文字信息流程圖。圖6 文字聊天流程 5.2 文字聊天模塊功能具體實現(xiàn) 文字聊天模塊功能是聊天軟件誕生以來,最早實現(xiàn)信息傳遞的功能模塊。首先雙擊客戶端應(yīng)用程序,讓其程序運行。經(jīng)過登錄驗證后,程序開辟一個新的線程udpThread來完成udp的監(jiān)聽功能,并通過調(diào)用UdpReceiveMsg()函數(shù)來實現(xiàn)對udp數(shù)據(jù)包的接收功能。在由

37、switch語句塊根據(jù)控制字符選擇相應(yīng)的功能函數(shù)實現(xiàn)相應(yīng)的功能。關(guān)鍵代碼如下: udpThread new Threadnew ThreadStartUdpReceiveMsg; private void UdpReceiveMsg udpSocket.BindLocalPoint; count udpSocket.Receiveread; switch ctrl case "MSG": /接收信息 this.SelectUsergostr; break; case "REQ": /接收好友添加請求 this.FriendRequestgostr; br

38、eak; case "AFF": /好友添加反應(yīng)信息 this.FriendResqonsegostr; break; 用戶雙擊所要發(fā)送信息的好友頭像,這時就會出現(xiàn)一個與好友對話的窗體,在對話框的輸入信息區(qū)域,將其要給對方所發(fā)送的信息輸入到該信息框內(nèi),然后點擊發(fā)送按鈕,就會觸發(fā)一個sender事件,從而調(diào)用b_send_Clickobject sender, System.EventArgs e 事件處理函數(shù)。該函數(shù)先對用戶輸入數(shù)據(jù)進(jìn)行判斷,如果輸入的傳輸數(shù)據(jù)大于一定的值(1024Byte),那么顯示發(fā)送信息過長的提示信息,如果輸入的字符數(shù)據(jù)正常,那么調(diào)用udpSocket

39、Send.SendToBsendinfo, remoteEP方法將控制符"MSG"連接上用戶自身ID及用戶輸入的文字信息發(fā)送給好友。關(guān)鍵代碼如下: private void b_send_Clickobject sender, System.EventArgs e IPEndPoint remoteEP new IPEndPointremoteIP,2003; MessageBox.Show "發(fā)送消息過長,請適當(dāng)刪減后再試" else udpSocketSend.SendToBsendinfo, remoteEP ; udpSocketSend.Clo

40、se; tb_record.AppendTextrecord; /將焦點置于最新消息顯示之處 tb_record.Focus; tb_send.Textnull; 當(dāng)好友的客戶端通過UdpReceiveMsg()的接收函數(shù)接收到了數(shù)據(jù)時,先通過控制符判斷是否是MSG,如果是,那么說明是好友發(fā)送的普通信息。再調(diào)用SelectUserstring str 用戶選擇函數(shù),根據(jù)字符串中的用戶ID號找到發(fā)送消息的用戶ID。然后將聊天信息交給該好友的DialogChat窗體的MSG屬性,這時就會觸發(fā)一個sender事件,表示收到該好友的信息,從而,就能將信息顯示在相應(yīng)好友的聊天對話框中了。關(guān)鍵代碼如下:

41、private void SelectUserstring str for int i 0; i this.OnLine; i+ if uctrlid ucARRi.UserId ucARRi.Msg msg; private void Msg_RecEventobject sender, MyEventArgs e tb_record.BeginInvokenew textBoxTextBoxRec; private void TextBoxRec switch msg default: tb_record.AppendTextrecord; /將焦點置于最新消息顯示之處 tb_record

42、.Focus; break; 5.3 文件傳輸模塊的分析 人們在互聯(lián)網(wǎng)上聊天時,需要傳遞一些如圖片、文件、資料等東西,這時聊天工具已有的文字聊天已經(jīng)不能滿足人們的這一需求,所以為方便用戶的使用,聊天工具給用戶提供了文件傳輸模塊,可以讓用戶在文字聊天的同時,給對方發(fā)送一些圖片、文件等信息。在功能上是聊天工具更為完善。其實現(xiàn)原理是:首先將外儲中的文件以文件流的形式提取到緩存中,然后通信雙方通過Socket套結(jié)字建立連接,并將緩存中存放的文件流進(jìn)行發(fā)送。用戶1向用戶2發(fā)送文件時,先發(fā)送請求信息給用戶2,用戶2接收到用戶1的請求信息后,對用戶1發(fā)送回應(yīng)信息,如果用戶2同意接收文件請求,那么開始文件傳輸

43、,如果用戶2不同意接收文件請求,那么停止傳輸。其流程結(jié)構(gòu)如圖7所示。圖7 文件傳輸流程 5.4 文件傳輸模塊功能具體實現(xiàn) 文件傳輸是隨著互聯(lián)網(wǎng)應(yīng)用技術(shù)的開展,在聊天軟件中產(chǎn)生的一個可以相互之間進(jìn)行發(fā)送文件的新功能模塊,它的實現(xiàn)滿足了現(xiàn)今用戶的需求。首先發(fā)送方在聊天對話框中點擊文件傳輸按鈕bt_file,就會觸發(fā)bt_file_Clickobject sender, EventArgs e 事件處理函數(shù),向?qū)Ψ桨l(fā)送一個傳送文件的請求。關(guān)鍵代碼如下: private void bt_file_Clickobject sender, EventArgs e OFDialog new OpenFile

44、Dialog; OFDialog.ShowDialog; filepath OFDialog.FileName; FileInfo fileinfo new FileInfofilepath; filesize fileinfo.Length; string filename fileinfo.Name; sendinfo "RFS" + this.my_id + "" + myip + "" + filesize+"" +filename ; udpSocketSend.SendToBsendinfo, remo

45、teEP; 當(dāng)接收方接收到控制字符"RFS"后,就調(diào)用FileRequeststring str 好友請求傳送文件函數(shù),得知是哪位好友發(fā)送的文件請求。這時通過 FileRec 屬性來觸發(fā)UserCtrl_FileEventobject sender, MyEventArgs e 事件處理函數(shù),通過FileReceiveForm FRForm new FileReceiveForm 語句,將文件接收窗體實例化,用FRForm.ShowDialog 將窗體顯示出來,該文件接收窗口有查看資料、接收、拒絕三個按鈕。如果用戶同意接收文件請求,單擊接收按鈕,就構(gòu)造字符串sendinfo

46、 "RSQACC" + myid回應(yīng)發(fā)送端,并開辟了新的文件接收線程Thread fileRec new Threadnew ThreadStartFileReceive,等待發(fā)送方發(fā)送文件。如果選擇拒絕接收文件,那么構(gòu)造字符串sendinfo "RSQREJ"回應(yīng)發(fā)送方,以結(jié)束文件傳送過程。關(guān)鍵代碼如下: 文件File string sendinfo "RSQACC" + myid; udpSocketSend.SendToBsendinfo, remoteEP; string sendinfo "RSQREJ"

47、 udpSocketSend.SendToBsendinfo, remoteEP; 發(fā)送端收到接收端的回應(yīng),判斷接收端的選擇并做相應(yīng)操作,如果對方接受請求那么開始發(fā)送文件,假設(shè)決絕那么結(jié)束文件傳送。關(guān)鍵代碼如下: 文件FileReceiveForm.cs TcpListener tcpListener new TcpListener2004; tcpListener.Start; TcpClient tcpClient new TcpClient; tcpClient tcpListener.AcceptTcpClient; bytes myNetworkStream.Readfile, 0,

48、 file.Length; while bytes ! 0 myFileStream.Writefile, 0, file.Length; bytes myNetworkStream.Readfile, 0, file.Length; tcpFile.Connectu_ip, 2004; while true bytes myFileStream.Readwrite, 0, write.Length; if bytes 0 break; nsc.Writewrite, 0, write.Length; 在該過程中接收端調(diào)用了FileReceive()文件接收函數(shù)進(jìn)行文件接收,在文件接收函數(shù)中,

49、實例化一個tcpListener對象進(jìn)行監(jiān)聽等待客戶端的連接,然后使用兩個流對象將接收到的數(shù)據(jù)寫入文件。而發(fā)送端那么實例化一個tcpFile對象去連接接收端,當(dāng)連接建立時那么使用兩個流對象將文件數(shù)據(jù)發(fā)送給接收端。這樣整個文件傳輸系統(tǒng)的功能模塊就大致完成了。6 添加好友、效勞器以及其它特殊功能模塊實現(xiàn)分析 6.1 添加好友模塊功能具體實現(xiàn) 添加好友模塊是網(wǎng)絡(luò)聊天必不可少的一步,用戶只有通過添加好友功能來實現(xiàn)用戶之間的聊天。 首先雙擊客戶端應(yīng)用程序,讓其程序運行,經(jīng)過登錄驗證后,通過語句udpThread new Threadnew ThreadStartUdpReceiveMsg;udpThre

50、ad.Start開辟并啟用了udpThread線程,并調(diào)用UdpReceiveMsg()的接收函數(shù),用來接收數(shù)據(jù),判斷相關(guān)操作。進(jìn)入到客戶端后,在下方有個添加好友按鈕,單擊該按鈕,就會觸發(fā)bt_add_Clickobject sender, EventArgs e 事件處理函數(shù),進(jìn)入到好友添加窗體中。在好友ID框中輸入好友ID號,點擊好友資料按鈕,就觸發(fā)button1_Clickobject sender, EventArgs e 事件處理函數(shù),在該函數(shù)中會調(diào)用tcpc.Connectserverip, port 方法與效勞器進(jìn)行連接,以此查詢好友資料并返回好友的ID號、頭像、名稱、IP地址、在線狀態(tài)的相關(guān)信息給用戶,并在客戶端顯示。這里通過判斷語句來實現(xiàn)在線好友頭像為彩色,不在線好友頭像為黑白。 當(dāng)查詢完用戶所要添加好友的信息后,確定要添加此好友,那么單擊發(fā)送請求按鈕,就觸發(fā)了button2_Clickobject sender, EventArgs e 事件處理函數(shù),先用判斷語句對在線狀態(tài)進(jìn)行判斷,如果好友不在線,彈出提示信息說明稍候重試,如果好友在線,那么通過udpSocketSend.SendTowrite , remoteEP 方法將控制字符"REQ"發(fā)送給所要添加的好友,這時對方的客戶端就會彈出好友添加請求對話框。對方選擇接受請求或者拒絕請

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論