版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p> 多媒體教室信息采集和通訊系統(tǒng)</p><p> INFORMATION COLLECTION AND COMMUNICATION SYSTEM OF MULTIMEDIA CLASSROOM</p><p><b> 摘 要</b></p><p> 隨著計(jì)算機(jī)技術(shù)在教學(xué)領(lǐng)域的應(yīng)用不斷加深,多媒體教室的使用也越來越
2、廣泛。多媒體教學(xué)為學(xué)習(xí)者提供了更為豐富、優(yōu)質(zhì)的學(xué)習(xí)資源,對提高教學(xué)質(zhì)量、轉(zhuǎn)變教學(xué)觀念產(chǎn)生積極影響。因此,對于多媒體教室的管理需要一個(gè)行之有效的方法。</p><p> 本文提出了一個(gè)基于C/S結(jié)構(gòu)的多媒體教室信息管理和通訊的方法,并且進(jìn)行了系統(tǒng)實(shí)現(xiàn)。本文首先簡單對C#語言,SQL SERVER 2008和C/S結(jié)構(gòu)等技術(shù)進(jìn)行介紹。接著分析系統(tǒng)的功能需求,并對其進(jìn)行功能模塊的劃分。主要分為通訊模塊和信息管理模塊。
3、其中,通訊模塊包括服務(wù)器與各教室客戶端的通訊、服務(wù)器與所有教室客戶機(jī)之間的通訊,通訊內(nèi)容包括文字信息、語音信息、視頻信息、傳送文件、遠(yuǎn)程協(xié)助等。信息管理模塊包括教室管理、多媒體設(shè)備管理、保修系統(tǒng)等,可以對教室信息、設(shè)備信息、報(bào)修單進(jìn)行增加、查詢、修改、刪除,并且可以進(jìn)行一段時(shí)間內(nèi)的統(tǒng)計(jì)查詢。</p><p> 本系統(tǒng)的開發(fā)使用可以更好地讓我們運(yùn)用多媒體教室,幫助學(xué)校有效管理多媒體教室以及設(shè)備的統(tǒng)計(jì)。</p
4、><p> 關(guān)鍵字:多媒體教室管理; 局域網(wǎng); C#; SQL SERVER 2008</p><p><b> ABSTRACT</b></p><p> With the development of the application of computer technology in the teaching field, the use
5、 of multimedia classroom is more and more extensive. Multimedia teaching provides learners a richer and higher-quality learning resource and it can improve the quality of teaching. It makes a positive impact on changes o
6、f teaching concepts. Therefore, it needs an effective approach for the management of multimedia classrooms. </p><p> In this paper, a multimedia classroom information management and communication method bas
7、ed on C / S structure is proposed and realized. First this article briefly introduces the C # language, SQL SERVER 2008 and C / S structure. Then it analyzes the system's functional requirements, and makes the divisi
8、on of functional modules. The system is mainly divided into two modules: the communication module and the management module. The former includes communication between the server and clients in ev</p><p> We
9、 can make better use of multimedia classrooms with the development of this system. And with the new system, it will be easy to manage multi-media classrooms and equipment.</p><p> Keywords: multimedia class
10、room management; LAN; C #; SQL SERVER 2008</p><p><b> 目 錄</b></p><p><b> 第一章 緒論1</b></p><p> 第一節(jié) 選題背景1</p><p> 第二節(jié) 研究意義1</p>
11、<p> 第三節(jié) 研究內(nèi)容及論文目錄結(jié)構(gòu)2</p><p> 第二章 相關(guān)技術(shù)及背景知識(shí)4</p><p> 第一節(jié) C#簡介及網(wǎng)絡(luò)編程技術(shù)4</p><p> 第二節(jié) 數(shù)據(jù)庫技術(shù)概述5</p><p> 第三節(jié) SQL SERVER 2008數(shù)據(jù)庫概述6</p><p>
12、第四節(jié) C/S架構(gòu)6</p><p> 第三章 系統(tǒng)分析與需求分析8</p><p> 第一節(jié) 系統(tǒng)可行性分析8</p><p> 第二節(jié) 需求分析9</p><p> 第三節(jié) 數(shù)據(jù)流程圖10</p><p> 第四節(jié) E-R圖11</p><p> 第四章
13、 系統(tǒng)概要設(shè)計(jì)14</p><p> 第一節(jié) 系統(tǒng)總體設(shè)計(jì)14</p><p> 第二節(jié) 數(shù)據(jù)庫設(shè)計(jì)15</p><p> 第五章 系統(tǒng)詳細(xì)設(shè)計(jì)17</p><p> 第一節(jié) 項(xiàng)目功能具體實(shí)現(xiàn)17</p><p> 第二節(jié) 界面實(shí)現(xiàn)與操作24</p><p>
14、第六章 軟件測試35</p><p> 第一節(jié) 測試目的35</p><p> 第二節(jié) 功能測試35</p><p> 第三節(jié) 測試結(jié)論35</p><p> 第七章 結(jié)束語36</p><p> 第一節(jié) 總結(jié)36</p><p> 第二節(jié) 工作展望36<
15、/p><p><b> 參考文獻(xiàn)I</b></p><p><b> 致謝II</b></p><p><b> 第一章 緒論</b></p><p><b> 選題背景</b></p><p> 近年來計(jì)算機(jī)技術(shù)發(fā)展迅猛
16、,其在各領(lǐng)域的應(yīng)用不斷加深,計(jì)算機(jī)輔助教學(xué)就是其中的一個(gè)成功例子。計(jì)算機(jī)輔助教學(xué)改變了以往教學(xué)中形式單一,信息量小等等諸多弊病,多媒體輔助教學(xué)能實(shí)現(xiàn)個(gè)性化教育,發(fā)展被教育者的積極主動(dòng)性,具有良好的視覺、聽覺效果、豐富的知識(shí)表達(dá)能力等多種有點(diǎn)。隨著全球信息化進(jìn)程的不斷發(fā)展,教育信息化勢在必行,多媒體教學(xué)正在逐漸成為主流教育形式。多媒體教學(xué)為學(xué)習(xí)者提供了更為豐富、優(yōu)質(zhì)的學(xué)習(xí)資源,必將對提高教學(xué)質(zhì)量,轉(zhuǎn)變教學(xué)觀念以及推進(jìn)全面教育產(chǎn)生了積極的影
17、響。</p><p> 局域網(wǎng)通訊(Local Network,簡稱LNLNIM)是指能夠即時(shí)發(fā)送和接收互聯(lián)網(wǎng)消息等的業(yè)務(wù)。自2001年面世以來,特別是近幾年的迅速發(fā)展,局域網(wǎng)通訊功能日益豐富。數(shù)據(jù)庫技術(shù)產(chǎn)生于60年代,40多年來數(shù)據(jù)庫技術(shù)得到了迅速發(fā)展,并已形成較為完整的理論體系和一大批實(shí)用系統(tǒng)。并且,近年來,隨著World Wide Web(WWW)的猛增及Internet技術(shù)的迅速發(fā)展,數(shù)據(jù)庫技術(shù)成為最熱
18、門技術(shù)之一。面向?qū)ο筌浖拈_發(fā)技術(shù),也大大保障了軟件開發(fā)的速度和效果。 </p><p> 隨著計(jì)算機(jī)的普及,計(jì)算機(jī)等硬件價(jià)格也不斷下降??傊瑹o論從需求方面,還是技術(shù)方面、經(jīng)濟(jì)方面,一個(gè)多媒體教室信息采集和通訊系統(tǒng)的開發(fā)都是很有必要的。</p><p><b> 第二節(jié) 研究意義</b></p><p> 本課題針對多媒體教學(xué)模式由傳統(tǒng)
19、的黑板教學(xué)模式向多媒體教學(xué)模式發(fā)展的新趨勢,結(jié)合局域網(wǎng)通訊技術(shù)在C#平臺(tái)成熟的技術(shù),對多媒體教學(xué)系統(tǒng)做一些新的研究與應(yīng)用。</p><p> 傳統(tǒng)的多媒體教室,一般輔以投影儀或硬件網(wǎng)絡(luò)系統(tǒng)來建立多媒體教學(xué)系統(tǒng),對于教室的管理也往往是采用手工記錄的。一旦某個(gè)教室出現(xiàn)故障,通常都是給電教中心控制室打電話來求助,這時(shí)電教部門會(huì)派值班人員去各個(gè)教室解決。由于多媒體使用問題通常是在每節(jié)課剛剛上課的時(shí)候發(fā)生,這就導(dǎo)致了一個(gè)
20、弊端發(fā)生:即將上課的時(shí)候,經(jīng)常會(huì)有多個(gè)教室同時(shí)發(fā)生多媒體設(shè)備故障。這樣一來,若是多媒體管理員比較少,報(bào)修會(huì)變得很困難。并且,依靠電話的多媒體教室管理不能留下記錄,不方便長期的管理。而依賴網(wǎng)絡(luò)的多媒體管理系統(tǒng)正好可以解決這個(gè)問題。大部分學(xué)校的多媒體教室電腦已經(jīng)通過局域網(wǎng)連接到了一起,缺少的就是一個(gè)完善的管理系統(tǒng),需要通過這樣一個(gè)平臺(tái)來實(shí)現(xiàn)多媒體教室與服務(wù)器之間的通訊、文件傳輸、遠(yuǎn)程協(xié)助,并且可以從服務(wù)器端進(jìn)行管理,記錄教室情況、設(shè)備情況、
21、保修情況,查詢空教室等。</p><p> 目前,國內(nèi)已經(jīng)有一些相對成熟的教學(xué)軟件,比如凌波多媒體網(wǎng)絡(luò)教室軟件和icontrol多媒體控制系統(tǒng)等,這些軟件都有很強(qiáng)大的功能,而且操作方便;但是,這些軟件在市場上都有著昂貴的價(jià)格,而且很多功能不適合多媒體教室的管理。介于這些軟件以上的缺點(diǎn),本課題重在研究完全適合多媒體教室通訊與管理。并且是根據(jù)本校的實(shí)際情況,量身定做,使它更加符合本校多媒體教學(xué)的要求,以進(jìn)一步提高本
22、校多媒體教學(xué)質(zhì)量,因此該系統(tǒng)將有很大的發(fā)展。</p><p> 第三節(jié) 研究內(nèi)容及論文目錄結(jié)構(gòu)</p><p> 系統(tǒng)的開發(fā)主要包括后臺(tái)數(shù)據(jù)庫的建立和維護(hù)以及前端應(yīng)用程序的開發(fā)兩個(gè)方面。對于前者要求建立起數(shù)據(jù)一致性和完整性強(qiáng)、數(shù)據(jù)安全性好的數(shù)據(jù)庫。而對于后者則要求應(yīng)用程序功能完備,易使用等特點(diǎn)。</p><p> 在研究技術(shù)方面,對結(jié)構(gòu)化設(shè)計(jì)方法和面向?qū)ο蟮?/p>
23、設(shè)計(jì)開發(fā)方法進(jìn)行了研究和比較,本課題采用的是更為先進(jìn)的面向?qū)ο笤O(shè)計(jì)開發(fā)方法;軟件開發(fā)可以根據(jù)需要選用開發(fā)模式,本文采用了當(dāng)前較為先進(jìn)的面向?qū)ο蟮腃/S構(gòu)架模式。編程方面使用C# socket編程技術(shù),C#數(shù)據(jù)庫訪問技術(shù)及SQL SERVER 2008數(shù)據(jù)庫管理技術(shù)。</p><p> 本課題要實(shí)現(xiàn)以下功能:</p><p><b> (1)通訊模塊:</b><
24、;/p><p> 單聊:服務(wù)器可以向各個(gè)教室發(fā)送信息,每個(gè)教室也都可以向服務(wù)器請求幫助; </p><p> 文件傳送:教室與控制室間傳送軟件等; </p><p> 語音聊天:教室進(jìn)行語音求助;</p><p> 視頻聊天:教室進(jìn)行視頻求助;</p><p> 遠(yuǎn)程協(xié)助:教室可以請求中控室管理員遠(yuǎn)程查看本地電腦
25、屏幕; </p><p> 顯示IP:顯示已和中控室計(jì)算機(jī)機(jī)連接的教室機(jī)的IP;</p><p> 廣播:中控室服務(wù)器可以向所有在線教室廣播消息。</p><p><b> (2)管理模塊:</b></p><p> 教室信息:查詢、添加、修改、刪除教室信息,包括編號(hào)、教室名稱、教室類型、教室所在區(qū)、教室使用狀態(tài)
26、和教室容量;</p><p> 資產(chǎn)管理:查詢、添加、修改、刪除設(shè)備信息,包括設(shè)備編號(hào)、設(shè)備名稱、所在教室名稱、已使用時(shí)長、購買安裝日期、備注;</p><p> 資產(chǎn)保修:查詢、添加、修改、刪除保修信息,包括設(shè)備名稱、所在教室名稱、報(bào)修人姓名、損壞原因、損壞日期、備注。</p><p> 查空教室:查詢當(dāng)前可用的教室;</p><p>
27、; 統(tǒng)計(jì)查詢:查詢一段時(shí)間的教室信息、資產(chǎn)信息、保修信息。</p><p> 此外,還包括一些常用工具:屏幕錄制、屏幕保護(hù)、屏幕截圖、音頻播放、電腦錄音、界面鎖定等。</p><p> 全文共分為六章,各章內(nèi)容分別如下:</p><p> 第一章 緒論。闡述了本課題的研究背景和研究意義及其本文的研究內(nèi)容和組織結(jié)構(gòu)。</p><p>
28、 第二章 系統(tǒng)使用技術(shù)概述。本章首先介紹了C#技術(shù)、數(shù)據(jù)庫技術(shù)和SQL SERVER 2008數(shù)據(jù)庫進(jìn)行了相關(guān)介紹,之后對系統(tǒng)的運(yùn)行環(huán)境visual studio 2008做了簡單的介紹。</p><p> 第三章 多媒體教室信息集成和通訊系統(tǒng)的分析。本章首先對系統(tǒng)進(jìn)行了可行性研究,指出了系統(tǒng)要解決的問題,并提出系統(tǒng)的設(shè)計(jì)思想;接下來對系統(tǒng)進(jìn)行了需求分析,最后分析了系統(tǒng)的業(yè)務(wù)流程。</p><
29、;p> 第四章 總體設(shè)計(jì)和數(shù)據(jù)庫設(shè)計(jì)。在對系統(tǒng)進(jìn)行架構(gòu)設(shè)計(jì)后,本章首先對系統(tǒng)流程進(jìn)行了詳細(xì)設(shè)計(jì),最后對數(shù)據(jù)庫進(jìn)行了概念設(shè)計(jì)和邏輯設(shè)計(jì)。</p><p> 第五章 系統(tǒng)的實(shí)現(xiàn)與維護(hù)。本章主要介紹了系統(tǒng)的實(shí)現(xiàn)基礎(chǔ),然后按照系統(tǒng)結(jié)構(gòu),逐層分析并給出相關(guān)代碼示例,最后給出了部分頁面的顯示結(jié)果圖。</p><p> 在總結(jié)中,總結(jié)了本文的內(nèi)容,并介紹了作者的主要工作及本系統(tǒng)存在的不足。&
30、lt;/p><p> 在參考文獻(xiàn)中,主要列舉了本文及本系統(tǒng)在構(gòu)建過程中所參考的教學(xué)資料和期刊。</p><p> 最后在致謝中,對給予幫助的師生表示感謝之情。</p><p> 第二章 相關(guān)技術(shù)及背景知識(shí)</p><p> 本系統(tǒng)是基于C#窗體編程的設(shè)計(jì)方案,使用 SQL SERVER 2008作為數(shù)據(jù)庫。下面就相關(guān)技術(shù)和運(yùn)行環(huán)境做簡單介
31、紹。</p><p> 第一節(jié) C#簡介及網(wǎng)絡(luò)編程技術(shù)</p><p><b> (1) C#簡介</b></p><p> C#(讀作C Sharp)是微軟公司發(fā)布的一種面向?qū)ο蟮?、運(yùn)行于.NET Framework之上的高級(jí)程序設(shè)計(jì)語言, 是一種安全的、穩(wěn)定的、簡單的、優(yōu)雅的,由C和C++衍生出來的面向?qū)ο蟮木幊陶Z言。它在繼承C和C+
32、+強(qiáng)大功能的同時(shí)去掉了一些它們的復(fù)雜特性(例如沒有宏和模版,不允許多重繼承)。C#綜合了VB簡單的可視化操作和C++的高運(yùn)行效率,以其強(qiáng)大的操作能力、優(yōu)雅的語法風(fēng)格、創(chuàng)新的語言特性和便捷的面向組件編程的支持成為.NET開發(fā)的首選語言。</p><p> C#看起來與Java有著驚人的相似;它包括了諸如單一繼承,界面,與Java幾乎同樣的語法,和編譯成中間代碼再運(yùn)行的過程.但是C#與Java有著明顯的不同,它借鑒
33、了Delphi的一個(gè)特點(diǎn),與COM(組件對象模型)是直接集成的, 而且它是微軟公司.NET windows網(wǎng)絡(luò)框架的主角。</p><p> (2) WinForms窗體設(shè)計(jì)技術(shù)</p><p> WinForm是.Net開發(fā)平臺(tái)中對Windows Form的一種稱謂。.Net 為開發(fā)WinForm的應(yīng)用程序提供了豐富的Class Library(類庫)。這些WinFrom類庫支持RA
34、D(快速應(yīng)用程序開發(fā)),這些類庫被封裝在一個(gè)名稱空間之中,這個(gè)名稱空間就是System.Windows.Forms。在此名稱空間中定義了許多類,在開發(fā)基于.Net的GUI應(yīng)用程序的時(shí)候,就是通過繼承和擴(kuò)展這些類才使得我們的程序有著多樣的用戶界面。</p><p> (3) ADO.NET技術(shù)</p><p> ADO.NET是一組用于和數(shù)據(jù)源進(jìn)行交互的面向?qū)ο箢悗?。通常情況下,數(shù)據(jù)源是
35、數(shù)據(jù)庫,但它同樣也能夠是文本文件、Excel表格或者XML文件。</p><p> ADO.NET允許和不同類型的數(shù)據(jù)源以及數(shù)據(jù)庫進(jìn)行交互。然而并沒有與此相關(guān)的一系列類來完成這樣的工作。因?yàn)椴煌臄?shù)據(jù)源采用不同的協(xié)議,所以對于不同的數(shù)據(jù)源必須采用相應(yīng)的協(xié)議。一些老式的數(shù)據(jù)源使用ODBC協(xié)議,許多新的數(shù)據(jù)源使用OleDb協(xié)議,并且現(xiàn)在還不斷出現(xiàn)更多的數(shù)據(jù)源,這些數(shù)據(jù)源都可以通過.NET的ADO.NET類庫來進(jìn)行連
36、接。 </p><p> ADO.NET提供與數(shù)據(jù)源進(jìn)行交互的相關(guān)的公共方法,但是對于不同的數(shù)據(jù)源采用一組不同的類庫。這些類庫稱為Data Providers,并且通常是以與之交互的協(xié)議和數(shù)據(jù)源的類型來命名的。然而無論使用什么樣的Data Provider,你將使用相似的對象與數(shù)據(jù)源進(jìn)行交互。SqlConnection對象管理與數(shù)據(jù)源的連接。SqlCommand對象允許你與數(shù)據(jù)源交流并發(fā)送命令給它。為了對進(jìn)行快
37、速的只“向前”地讀取數(shù)據(jù),使用SqlDataReader。如果想使用斷開數(shù)據(jù),使用DataSet并實(shí)現(xiàn)能進(jìn)行讀取或者寫入數(shù)據(jù)源的SqlDataAdapter。</p><p> (4) Socket編程</p><p> 所謂Socket通常也稱作“套接字”,應(yīng)用程序通常通過“套接字”向網(wǎng)絡(luò)發(fā)出請求或者應(yīng)答網(wǎng)絡(luò)請求。根據(jù)連接啟動(dòng)的方式以及本地套接字要連接的目標(biāo),套接字之間的連接過程可以
38、分為三個(gè)步驟:服務(wù)器監(jiān)聽,客戶端請求,連接確認(rèn)。 </p><p> 服務(wù)器監(jiān)聽:是服務(wù)器端套接字并不定位具體的客戶端套接字,而是處于等待連接的狀態(tài),實(shí)時(shí)監(jiān)控網(wǎng)絡(luò)狀態(tài)。 </p><p> 客戶端請求:是指由客戶端的套接字提出連接請求,要連接的目標(biāo)是服務(wù)器端的套接字。為此,客戶端的套接字必須首先描述它要連接的服務(wù)器的套接字,指出服務(wù)器端套接字的地址和端口號(hào),然后就向服務(wù)器端套接字提出連
39、接請求。 </p><p> 連接確認(rèn):是指當(dāng)服務(wù)器端套接字監(jiān)聽到或者說接收到客戶端套接字的連接請求,它就響應(yīng)客戶端套接字的請求,建立一個(gè)新的線程,把服務(wù)器端套接字的描述發(fā)給客戶端,一旦客戶端確認(rèn)了此描述,連接就建立好了。而服務(wù)器端套接字繼續(xù)處于監(jiān)聽狀態(tài),繼續(xù)接收其他客戶端套接字的連接請求。</p><p> (5) .NET 與多線程技術(shù)</p><p>
40、多線程是為了使得多個(gè)線程并行的工作以完成多項(xiàng)任務(wù),以提高系統(tǒng)的效率。線程是在同一時(shí)間需要完成多項(xiàng)任務(wù)的時(shí)候被實(shí)現(xiàn)的。</p><p> 在本質(zhì)上和結(jié)構(gòu)來說,.NET是一個(gè)多線程的環(huán)境。有兩種主要的多線程方法是.NET所提倡的:使用ThreadStart來開始你自己的進(jìn)程,直接的 (使用ThreadPool.QueueUserWorkItem)或者間接的(比如Stream.BeginRead,或者調(diào)用 Begin
41、Invoke)使用ThreadPool類。線程的基類是System.Threading。所有線程通過CLI來進(jìn)行管理。</p><p> 第二節(jié) 數(shù)據(jù)庫技術(shù)概述</p><p> 數(shù)據(jù)庫技術(shù)是一門研究數(shù)據(jù)庫的結(jié)構(gòu)、存儲(chǔ)、管理和使用的軟件學(xué)科。數(shù)據(jù)庫技術(shù)是在操作系統(tǒng)的文件系統(tǒng)基礎(chǔ)上發(fā)展起來的,而數(shù)據(jù)庫管理系統(tǒng)(DBMS)本身要在操作系統(tǒng)的支持下才能工作。數(shù)據(jù)庫不僅用到數(shù)據(jù)結(jié)構(gòu)的知識(shí),而且
42、豐富了數(shù)據(jù)結(jié)構(gòu)的內(nèi)容。在關(guān)系數(shù)據(jù)庫重要用到集合論、數(shù)理邏輯的理論。因此,數(shù)據(jù)庫技術(shù)是一門綜合性較強(qiáng)的學(xué)科。</p><p> 在數(shù)據(jù)庫技術(shù)中,我們用模型的概念描述數(shù)據(jù)庫的結(jié)構(gòu)與語義,對現(xiàn)實(shí)世界進(jìn)行抽象,表示實(shí)體類型及實(shí)體間聯(lián)系的模型稱為“數(shù)據(jù)模型”。目前廣泛使用的模型可以分為兩類:一種是獨(dú)立于計(jì)算機(jī)系統(tǒng)的模型,完全不涉及信息在系統(tǒng)中的表示,只是用來描述某個(gè)特定組織所關(guān)心的信息結(jié)構(gòu),這類模型稱為“概念模型”。&l
43、t;/p><p> 用戶對數(shù)據(jù)庫的使用。是通過數(shù)據(jù)庫管理系統(tǒng)所提供的語言來實(shí)現(xiàn)的。不同的數(shù)據(jù)庫管理系統(tǒng)提供不同的數(shù)據(jù)庫語言。關(guān)系數(shù)據(jù)庫管理系統(tǒng)幾乎都提供關(guān)系數(shù)據(jù)庫表追語言-SQL.</p><p> SQL的全稱是Structured Query Language,即結(jié)構(gòu)化查詢語句.SQL語句可以從關(guān)系數(shù)據(jù)庫中獲得數(shù)據(jù),也可以建立數(shù)據(jù)庫、增加數(shù)據(jù)、修改數(shù)據(jù)。SQL語言是一種非過程化語言,它
44、一次處理一個(gè)記錄集合,對數(shù)據(jù)提供自動(dòng)導(dǎo)航。SQL語言允許用戶在高層的數(shù)據(jù)結(jié)構(gòu)上工作,而不對單個(gè)紀(jì)錄進(jìn)行操作。SQL語言部要求用戶指定數(shù)據(jù)的存取方法,而是使用查詢優(yōu)化器,由系統(tǒng)決定對指定數(shù)據(jù)存取的最快速手段。</p><p> 第三節(jié) SQL SERVER 2008數(shù)據(jù)庫概述</p><p> SQL Server 2008 是一個(gè)全面的數(shù)據(jù)庫平臺(tái),使用集成的商業(yè)智能 (BI) 工具提
45、供了企業(yè)級(jí)的數(shù)據(jù)管理。SQL Server 2008 數(shù)據(jù)庫引擎為關(guān)系型數(shù)據(jù)和結(jié)構(gòu)化數(shù)據(jù)提供了更安全可靠的存儲(chǔ)功能。此外 SQL Server 2008 結(jié)合了分析、報(bào)表、集成和通知功能。</p><p> SQL Server 2008有助于簡化企業(yè)數(shù)據(jù)與分析應(yīng)用的創(chuàng)建、部署和管理,并在解決方案伸縮性、可用性和安全性方面實(shí)現(xiàn)重大改進(jìn)?;赟QL Server 2005技術(shù)優(yōu)勢構(gòu)建的SQL Server 200
46、8將提供集成化信息管理解決方案,可幫助任何規(guī)模的組織機(jī)構(gòu):</p><p> 創(chuàng)建并部署更具伸縮性、可靠性和安全性的企業(yè)級(jí)應(yīng)用。 </p><p> 降低數(shù)據(jù)庫應(yīng)用創(chuàng)建、部署與管理的復(fù)雜程度,進(jìn)而實(shí)現(xiàn)IT效率最大化。</p><p> 憑借可供創(chuàng)建更具安全保障之?dāng)?shù)據(jù)庫應(yīng)用的豐富、靈活、現(xiàn)代化開發(fā)環(huán)境增強(qiáng)開發(fā)人員工作效能。 </p><p&g
47、t; 跨越多種平臺(tái)、應(yīng)用和設(shè)備實(shí)現(xiàn)數(shù)據(jù)共享,進(jìn)而簡化內(nèi)部系統(tǒng)與外部系統(tǒng)連接。 </p><p> 實(shí)現(xiàn)功能強(qiáng)勁的集成化商務(wù)智能解決方案,從而在整個(gè)企業(yè)范圍內(nèi)推進(jìn)科學(xué)決策,提高工作效率。 </p><p> 在不必犧牲性能表現(xiàn)、可用性或伸縮性的前提下控制成本費(fèi)用水平。 </p><p><b> 第四節(jié) C/S架構(gòu)</b></p&g
48、t;<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)正在向分布式的Web應(yīng)用發(fā)展,Web和Client/Server 應(yīng)用都可以進(jìn)行同樣的業(yè)務(wù)處理,應(yīng)用不同的模
49、塊共享邏輯組件;因此,內(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><p> C/S結(jié)構(gòu)是當(dāng)前數(shù)據(jù)庫應(yīng)用程序中極為流行的一種方式。尤其是網(wǎng)絡(luò)技術(shù)的發(fā)展,使得當(dāng)前很多系統(tǒng)都采用這種方式進(jìn)行構(gòu)造,其最大的優(yōu)點(diǎn)是將計(jì)算機(jī)工作任務(wù)分別由客戶端和服務(wù)器端來共同完成,這樣有利于充分合理的利用系統(tǒng)資源。另外它的服務(wù)器端還可以將信息集
50、中起來,任何客戶機(jī)都可以通過訪問服務(wù)器而獲得所需的信息。Client/Server模型最終可歸結(jié)為一種“請求/應(yīng)答”關(guān)系。一個(gè)請求總是首先被客戶發(fā)出,然后服務(wù)器總是被動(dòng)地接收請求,返回客戶需要的結(jié)果。在客戶發(fā)出一個(gè)請求之前,服務(wù)進(jìn)程一直處于休眠狀態(tài)。一個(gè)客戶提出請求后,服務(wù)進(jìn)程被“喚醒”并且為客戶提供服務(wù),對客戶的請求做出所需要的應(yīng)答,如圖2.1所示。</p><p> 圖2.1 客戶機(jī)/服務(wù)器通信結(jié)構(gòu)示圖&l
51、t;/p><p> 第三章 系統(tǒng)分析與需求分析</p><p> 第一節(jié) 系統(tǒng)可行性分析</p><p> 從具體情況出發(fā),經(jīng)過多方面調(diào)研、討論,將從技術(shù)可行性、經(jīng)濟(jì)可行性、運(yùn)行可行性三個(gè)方面來研究本系統(tǒng)的可行性。</p><p><b> 1技術(shù)可行性</b></p><p> 技術(shù)可行性
52、分析主要是根據(jù)系統(tǒng)分析所得到的對待開發(fā)的軟件、支撐軟件、硬件環(huán)境和操作人員的要求以及有關(guān)的約束和限制,來分析現(xiàn)有的技術(shù)是否能實(shí)現(xiàn)待開發(fā)的軟件。它包括可得到的硬件和支撐軟件在功能和性能上是否滿足系統(tǒng)的要求,是否有滿足系統(tǒng)性能要求的算法,開發(fā)人員的技術(shù)水平能否勝任系統(tǒng)的開發(fā)等等。</p><p> 本系統(tǒng)運(yùn)行基于Win2000/winXP以上的任何操作系統(tǒng),使用的前臺(tái)開發(fā)軟件是visual studio 2008,
53、后臺(tái)數(shù)據(jù)庫開發(fā)使用的是SQL SERVER 2008,其中visual studio 2008是目前最常用的編程工具,SQL2008也是較新的數(shù)據(jù)庫軟件,已經(jīng)被證明好用而且功能豐富,這些軟件已經(jīng)商品化,足以支持本課題開發(fā)。</p><p> 其次,本系統(tǒng)需要運(yùn)行在局域網(wǎng)環(huán)境中,學(xué)校的校園網(wǎng)建設(shè)以及多媒體教室計(jì)算機(jī)已經(jīng)搭建好的內(nèi)部網(wǎng)絡(luò)為軟件運(yùn)行提供了良好的環(huán)境。</p><p> 最后,
54、本系統(tǒng)開發(fā)是由本人完成的,本人已修完本專業(yè)所有的專業(yè)基礎(chǔ)課和專業(yè)課,熟悉數(shù)據(jù)的開發(fā)環(huán)境,有一定的運(yùn)用系統(tǒng)軟件和一定的編程能力,完全勝任此項(xiàng)開發(fā),故技術(shù)可行。</p><p><b> 2 經(jīng)濟(jì)可行性</b></p><p> 經(jīng)濟(jì)可行性首先要進(jìn)行待開發(fā)軟件的成本估計(jì)和成本效益分析,以確定待開發(fā)軟件是否有開發(fā)的價(jià)值。這里的效益包括系統(tǒng)的開發(fā)所帶來的收入的增加,以及新
55、開發(fā)的系統(tǒng)比原有的系統(tǒng)在使用費(fèi)用上的減少。對于開發(fā)成本低、經(jīng)濟(jì)效益高的軟件應(yīng)積極開發(fā),而對于開發(fā)成本高、經(jīng)濟(jì)效益低的軟件或開發(fā)成本與經(jīng)濟(jì)效益差不多的軟件通常不應(yīng)開發(fā)。</p><p> 本軟件的正常運(yùn)行需要一臺(tái)服務(wù)器,目前市場的主流服務(wù)器完全符合要求。并且學(xué)校多媒體控制室一般都配有服務(wù)器,在已有的服務(wù)器上運(yùn)行本軟件即可,基本不需要花費(fèi)費(fèi)用。</p><p><b> 3 運(yùn)行
56、可行性</b></p><p> 本系統(tǒng)為一個(gè)小型的局域網(wǎng)聊天與管理系統(tǒng),所耗費(fèi)的資源非常的小,現(xiàn)在一般的電腦無論是硬件還是軟件都能夠滿足條件,因此,本系統(tǒng)在運(yùn)行上是可行的。</p><p> 綜上所述,本系統(tǒng)的設(shè)計(jì)與開發(fā)在技術(shù)上和硬件設(shè)備上的條件都是滿足的,因此,它是可行的。</p><p><b> 第二節(jié) 需求分析</b>
57、;</p><p><b> 1 功能需求分析</b></p><p> 根據(jù)在學(xué)校電教中心的長期實(shí)習(xí)經(jīng)驗(yàn),可以很清楚的知道多媒體管理系統(tǒng)所需要實(shí)現(xiàn)的功能:可以實(shí)現(xiàn)局域網(wǎng)內(nèi)部通訊,可以實(shí)現(xiàn)對多媒體設(shè)備、保修等。所以本系統(tǒng)分為兩個(gè)模塊:</p><p> 通訊模塊:包括語音聊天、視頻聊天、遠(yuǎn)程協(xié)助、文件傳送等; </p>&l
58、t;p> 管理模塊:教室管理、資產(chǎn)管理、保修管理、統(tǒng)計(jì)查詢等。</p><p> 系統(tǒng)各項(xiàng)的功能如下:</p><p><b> ?。?)文字通訊</b></p><p> 主要實(shí)現(xiàn)教室與中控室間的信息交流。</p><p><b> (2)語音通訊</b></p>&l
59、t;p> 主要實(shí)現(xiàn)教室客戶機(jī)與中控室服務(wù)器之間的語音求助,可以通過局域網(wǎng)以及已有的計(jì)算機(jī)設(shè)備進(jìn)行求助。</p><p><b> ?。?)視頻通訊</b></p><p> 語音通訊的增強(qiáng)功能,可以調(diào)用本機(jī)攝像頭進(jìn)行視頻交流或者視頻會(huì)議。</p><p><b> ?。?)文件傳送</b></p>
60、<p> 主要實(shí)現(xiàn)有部分老師要安裝特殊軟件,需要先到中控室進(jìn)行殺毒、登記,然后可以通過本系統(tǒng)傳送到需要安裝教室。</p><p><b> ?。?)遠(yuǎn)程協(xié)助</b></p><p> 主要實(shí)現(xiàn)教室與服務(wù)器之間的屏幕交流。若是教室計(jì)算機(jī)出現(xiàn)問題,如果可以通過遠(yuǎn)程協(xié)助解決,則不需要管理員去教室查看即可提供服務(wù)。</p><p><
61、;b> ?。?)廣播功能</b></p><p> 主要實(shí)現(xiàn)服務(wù)器向所有在線教室進(jìn)行消息傳遞,可以廣播一些通知。</p><p><b> ?。?)教室信息管理</b></p><p> 主要實(shí)現(xiàn)添加教室信息(包括:編號(hào)、教室名稱、教室類型、教室所在區(qū)、教室使用狀態(tài)和教室容量)查詢某個(gè)教室使用信息、修改及刪除信息,還包括查
62、詢空教室等。</p><p><b> ?。?)設(shè)備信息管理</b></p><p> 主要實(shí)現(xiàn)對多媒體教室各個(gè)設(shè)備的管理,比如投影儀設(shè)備,可以記錄其開始使用時(shí)間,燈泡已經(jīng)使用時(shí)長,用時(shí)過長會(huì)導(dǎo)致教室屏幕不清晰,需要及時(shí)更換。</p><p><b> ?。?)設(shè)備保修管理</b></p><p>
63、; 主要實(shí)現(xiàn)對所有多媒體設(shè)備的保修功能,可以通過網(wǎng)絡(luò)進(jìn)行設(shè)備保修,這樣不但方便快捷,還能留下保修記錄供以后查詢。</p><p><b> ?。?0)統(tǒng)計(jì)查詢</b></p><p> 查詢一段時(shí)間的設(shè)備、保修等信息,方便管理員統(tǒng)計(jì)。</p><p><b> 2 性能需求</b></p><p&
64、gt; 本網(wǎng)站的性能需求如下:</p><p> ?。?)界面友好性要求:系統(tǒng)提供統(tǒng)一的操作界面和方式:操作界面簡潔大方、布局合理、功能完善、對于初級(jí)用戶容易上手;</p><p> (2)信息的完整性:要求采用值約束、缺省等方法確保信息的完整性,一旦用戶錄入數(shù)據(jù)不符合系統(tǒng)要求時(shí),系統(tǒng)必須明確給出警告信息;</p><p> ?。?)系統(tǒng)運(yùn)行在主流的Window
65、s操作系統(tǒng)平臺(tái)上,便于以后系統(tǒng)的升級(jí);</p><p> ?。?)遵循主流的標(biāo)準(zhǔn)和協(xié)議,不僅可以為系統(tǒng)與上級(jí)平臺(tái)系統(tǒng)交換信息提供便利,而且也有利于系統(tǒng)內(nèi)部各部分之間交換信息,這將有助于提高系統(tǒng)擴(kuò)充性。響應(yīng)速度:要求能夠響應(yīng)快速,響應(yīng)速度盡量在人員可忍受的時(shí)間內(nèi)并給予提示。</p><p><b> 第三節(jié) 數(shù)據(jù)流程圖</b></p><p>
66、 數(shù)據(jù)流程圖是描述系統(tǒng)數(shù)據(jù)流程的工具,它將數(shù)據(jù)獨(dú)立抽象出來,通過圖形方式描述信息的來龍去脈和實(shí)際流程。</p><p> 為了描述復(fù)雜的軟件系統(tǒng)的信息流向和加工,可采用分層的DFD來描述,分層DFD有頂層,中間層、底層之分。 </p><p> ?。?)頂層。決定系統(tǒng)的范圍,決定輸入輸出數(shù)據(jù)流,它說明系統(tǒng)的邊界,把整個(gè)系統(tǒng)的功能抽象為一個(gè)加工,頂層DFD只有一張。 </p>
67、<p> ?。?)中間層。頂層之下是若干中間層,某一中間層既是它上一層加工的分解結(jié)果,又是它下一層若干加工的抽象,即它又可進(jìn)一步分解。 </p><p> ?。?)底層。若一張DFD的加工不能進(jìn)一步分解,這張DFD就是底層的了。底層DFD的加工是由基本加工構(gòu)成的,所謂基本加工是指不能再進(jìn)行分解的加工。</p><p> 本系統(tǒng)共分為兩大模塊,其中,通訊模塊負(fù)責(zé)整個(gè)系統(tǒng)的局域
68、網(wǎng)內(nèi)通訊,分為單聊和廣播,單聊可以是服務(wù)器選擇教室,也可以是教室向服務(wù)器求助,單聊采用TCP通訊,連接成功后,可以進(jìn)行文字、文件、語音、視頻通訊以及遠(yuǎn)程協(xié)助管理;廣播消息主要是服務(wù)器端向所有用戶發(fā)送通知、公告等。同時(shí),所有聊天記錄都可以以TXT文本文件格式保存下來。此外,系統(tǒng)還包括一些常用工具,比如屏幕錄制、屏幕保護(hù)、屏幕截圖等,可以輔助聊天功能,進(jìn)行遠(yuǎn)程支持描述,界面鎖定功能,可以鎖定界面,更加安全。流程圖如圖3.1:</p&g
69、t;<p> 圖3.1 通訊系統(tǒng)流程圖</p><p> 管理模塊主要負(fù)責(zé)信息的管理,實(shí)際是對數(shù)據(jù)庫進(jìn)行操作,流程圖見圖3.2。</p><p><b> 第四節(jié) E-R圖</b></p><p> E-R模型的關(guān)鍵元素是實(shí)體、屬性和聯(lián)系。實(shí)體是可以從用戶的工作環(huán)境中標(biāo)識(shí)出的事物,是用戶想要跟蹤的某個(gè)事物。實(shí)體在E-R圖中
70、,用矩形表示,矩形框內(nèi)寫明實(shí)體名。實(shí)體具有屬性,有時(shí)也稱作性質(zhì),是用來描述實(shí)體的特征的。屬性可以是組合的或者多值的。</p><p> 該系統(tǒng)有3個(gè)實(shí)體,分別為:教室信息、設(shè)備信息、報(bào)修信息。</p><p> 圖3.2 通訊系統(tǒng)流程圖</p><p><b> ⑴ 教室信息</b></p><p> 教室的屬性
71、包括:編號(hào)、教室名稱、教室類型、教室所在區(qū)、教室使用狀態(tài)和教室容量。</p><p> 圖3.3 教室實(shí)體屬性圖</p><p><b> ?、?設(shè)備信息</b></p><p> 設(shè)備的屬性包括設(shè)備編號(hào)、設(shè)備名稱、所在教室名稱、已使用時(shí)長、購買安裝日期、備注。實(shí)體屬性圖如3.5所示。</p><p> 圖3.4
72、設(shè)備信息屬性圖</p><p><b> ⑶ 報(bào)修信息</b></p><p> 報(bào)修的屬性包括設(shè)備名稱、所在教室名稱、報(bào)修人姓名、損壞原因、損壞日期、備注。實(shí)體屬性圖如3.6所示。</p><p> 圖3.5 報(bào)修實(shí)體屬性圖</p><p> 第四章 系統(tǒng)概要設(shè)計(jì)</p><p> 經(jīng)
73、過需求分析之后,進(jìn)入系統(tǒng)設(shè)計(jì)階段,系統(tǒng)設(shè)計(jì)又稱總體設(shè)計(jì)或初步設(shè)計(jì),根據(jù)需求分析階段的工作,系統(tǒng)“做什么”已經(jīng)清楚,現(xiàn)在是決定“怎樣做”的時(shí)候了,同時(shí)確定系統(tǒng)中每個(gè)程序由哪些模塊組成及其相互關(guān)系。</p><p> 第一節(jié) 系統(tǒng)總體設(shè)計(jì)</p><p> 本系統(tǒng)主要實(shí)現(xiàn)多媒體教室的網(wǎng)絡(luò)化管理,主要分為兩大部分功能:一是多媒體教室與控制室之間的通訊交流,一是網(wǎng)絡(luò)化的多媒體教室信息采集與管理
74、。其中,通訊管理模塊的系統(tǒng)功能圖如圖4.1:</p><p> 圖4.1 通訊部分功能模塊圖</p><p><b> (1)文字聊天模塊</b></p><p> 主要實(shí)現(xiàn)客戶實(shí)現(xiàn)多媒體教室與服務(wù)器之間的文字通訊;</p><p><b> ?。?)語音聊天模塊</b></p>
75、<p> 主要實(shí)現(xiàn)多媒體教室向中控室的IP語音請求;</p><p><b> ?。?)視頻聊天模塊</b></p><p> 主要實(shí)現(xiàn)多媒體教室與中控室之間的視頻請求;</p><p><b> (4)文件傳送模塊</b></p><p> 主要實(shí)現(xiàn)服務(wù)器向各教室傳送軟件等文件
76、;</p><p><b> (5)遠(yuǎn)程協(xié)助模塊</b></p><p> 主要實(shí)現(xiàn)多媒體控制室對教室進(jìn)行遠(yuǎn)程控制,協(xié)助解決問題;</p><p><b> (6)廣播消息模塊</b></p><p> 主要實(shí)現(xiàn)控制室向所有在線教室發(fā)送廣播消息;</p><p>&l
77、t;b> ?。?)系統(tǒng)設(shè)置</b></p><p> 主要實(shí)現(xiàn)教室名稱設(shè)置、是否保留聊天記錄、是否開機(jī)啟動(dòng)等常用設(shè)置。</p><p> 教室信息管理模塊圖如下:</p><p> 圖4.2 信息管理部分功能模塊圖</p><p><b> 具體描述如下:</b></p><
78、p> 1、教室信息管理模塊</p><p> ?。?)新增多媒體教室信息,包括編號(hào)、教室名稱、教室類型、教室所在區(qū)、教室使用狀態(tài)和教室容量;</p><p> ?。?)查詢、修改多媒體機(jī)房信息;</p><p> ?。?)刪除多媒體機(jī)房信息。</p><p> 2、設(shè)備信息管理模塊</p><p> ?。?)
79、新增教室設(shè)備,包括設(shè)備編號(hào)、設(shè)備名稱、所在教室名稱、已使用時(shí)長、購買安裝日期、備注;</p><p> ?。?)查詢、修改教室設(shè)備;</p><p> (3)刪除教室設(shè)備。</p><p><b> 3、報(bào)修管理模塊</b></p><p> ?。?)新增報(bào)修單,包括設(shè)備名稱、所在教室名稱、報(bào)修日期、損壞原因、報(bào)修人
80、姓名、備注;</p><p> ?。?)查詢、修改報(bào)修信息;</p><p> ?。?)刪除報(bào)修信息。</p><p><b> 4、空教室查詢</b></p><p> 實(shí)用功能,查詢現(xiàn)在可以實(shí)用的空教室。</p><p> 5、統(tǒng)計(jì)信息管理模塊</p><p>
81、 查詢一段時(shí)間內(nèi)的教室、資產(chǎn)、報(bào)修信息。</p><p><b> 第二節(jié) 數(shù)據(jù)庫設(shè)計(jì)</b></p><p> 本系統(tǒng)聊天模塊沒有實(shí)用數(shù)據(jù)庫,教室管理模塊使用了三個(gè)表,分別為教室信息表、設(shè)備信息表、報(bào)修表。</p><p> 【教室信息】數(shù)據(jù)表用于存儲(chǔ)教室的基本信息。數(shù)據(jù)表結(jié)構(gòu)設(shè)計(jì)見表4.1:</p><p>
82、 表4.1 教室信息表 (Roomsinfo)</p><p> 【設(shè)備信息】數(shù)據(jù)表用于存儲(chǔ)教室設(shè)備的基本信息。數(shù)據(jù)表結(jié)構(gòu)設(shè)計(jì)見表</p><p> 表4.2 設(shè)備信息表(Device)</p><p> 【報(bào)修信息】數(shù)據(jù)表用于存儲(chǔ)報(bào)修記錄。數(shù)據(jù)表結(jié)構(gòu)設(shè)計(jì)見表4-3所示:</p><p> 表4.3 報(bào)修信息表(Break)</
83、p><p> 第五章 系統(tǒng)詳細(xì)設(shè)計(jì)</p><p> 第一節(jié) 項(xiàng)目功能具體實(shí)現(xiàn)</p><p><b> 1連接建立模塊</b></p><p> 程序打開后,會(huì)首先會(huì)啟動(dòng)廣播線程,把自己上線的消息廣播給所有局域網(wǎng)內(nèi)用戶。廣播函數(shù)為:</p><p> private void Broadc
84、astOwn(Object obj)</p><p><b> {</b></p><p> UdpClient sendClient = new dpClient(AddressFamily.InterNetwork);</p><p> sendClient.Ttl = 200;</p><p> IPEnd
85、Point iep = new IPEndPoint(broderCastIp, sendPort);</p><p> Byte[] bs = FileOperate.Serialize(obj);</p><p><b> try</b></p><p><b> {</b></p><p&g
86、t; sendClient.Send(bs, bs.Length, iep);</p><p><b> }</b></p><p><b> catch </b></p><p><b> {</b></p><p> MessageBox.Show("組
87、播自己的信息失敗!");</p><p><b> }</b></p><p><b> finally</b></p><p><b> {</b></p><p> sendClient.Close();</p><p><b
88、> }</b></p><p><b> }</b></p><p> 廣播自己的消息后,即開始監(jiān)聽,監(jiān)聽線程如下:</p><p> public void StartListenerThread()</p><p><b> {</b></p><
89、p> Thread receiveThread = new Thread(ResolveUser);</p><p> receiveThread.IsBackground = true;</p><p> receiveThread.Start();//開啟 TCP監(jiān)聽</p><p> NetManager.listenerPort = NetMa
90、nager.GetAvailablePort();</p><p> this.formManager.UserOwn.ListenerPort = NetManager.listenerPort;</p><p> this.formManager.UserOwn.Ip = NetManager.GetHostIP().ToString();</p><p>
91、 myServer = new MyServer(listenerPort, this.formManager);</p><p> myServer.StartListen();</p><p><b> }</b></p><p><b> 2文本聊天模塊</b></p><p> 文
92、本聊天是所有通訊系統(tǒng)的基礎(chǔ)功能,通過文本聊天,局域網(wǎng)內(nèi)用戶能夠發(fā)送和接收文字信息,并在程序窗體上顯示出來,相互之間進(jìn)行在線交流,并能根據(jù)用戶需要,對聊天記錄進(jìn)行簡單的保存。文本聊天的信息傳輸協(xié)議主要有面向連接的TCP和無連接的UDP。TCP協(xié)議是互聯(lián)網(wǎng)中最重的協(xié)議之一,主要特點(diǎn)是:保證數(shù)據(jù)包的準(zhǔn)確到達(dá);保證各數(shù)據(jù)包到達(dá)的順序和數(shù)據(jù)包發(fā)出的順序相同。UDP協(xié)議提供了快速但不一定可靠的傳輸服務(wù),但UDP可以傳送廣播消息。所以,在文本聊天模塊
93、中,采用TCP協(xié)議來傳輸點(diǎn)對點(diǎn)文本信息,采用UDP協(xié)議來傳輸廣播信息。</p><p> ?。?)私聊發(fā)送文本消息</p><p><b> 發(fā)送按鈕代碼:</b></p><p> private void tsbSend_ButtonClick(object sender, EventArgs e)</p><p&g
94、t;<b> {</b></p><p> if (rtbWrite.Text == "")</p><p><b> return;</b></p><p><b> try</b></p><p><b> {</b>&l
95、t;/p><p> string rtf = Tool.GetRtfString(this.formManager.UserOwn.Name + " " + DateTime.Now.ToLongTimeString(), Tool.Font, Color.DarkGray);</p><p> AddRtfByClipboard(rtf);</p>&
96、lt;p> AddRtfByClipboard(rtbWrite.Rtf);</p><p> NetManager.SendStringMsgToServer(userClient, "TalkContent");</p><p> NetManager.SendStringMsgToServer(userClient, rtbWrite.Rtf);<
97、;/p><p> this.rtbWrite.Clear();</p><p> this.rtbWrite.Focus();</p><p><b> }</b></p><p> catch (Exception)</p><p><b> {</b></p&
98、gt;<p> this.rtbWrite.Clear();</p><p> this.rtbWrite.Focus();</p><p> this.Text = "對方不在線";</p><p><b> }</b></p><p><b> }</b&g
99、t;</p><p> 其中,NetManager 類中用于發(fā)送文本和字節(jié)的函數(shù)為:</p><p> public static bool SendStringMsgToServer(UserClient userClient, string msg)</p><p><b> {</b></p><p><
100、;b> try</b></p><p><b> {</b></p><p> userClient.Bw.Write(msg);</p><p> userClient.Bw.Flush();</p><p> return true;</p><p><b&g
101、t; }</b></p><p> catch (Exception)</p><p><b> {</b></p><p> return false;</p><p><b> }</b></p><p><b> }</b>
102、</p><p> public static bool SendBytesMsgToServer(UserClient userClient, byte[] bs)</p><p><b> {</b></p><p><b> try</b></p><p><b> {<
103、;/b></p><p> userClient.Bw.Write(bs.Length);</p><p> userClient.Bw.Write(bs);</p><p> userClient.Bw.Flush();</p><p> return true;</p><p><b>
104、}</b></p><p> catch (Exception)</p><p><b> {</b></p><p> return false;</p><p><b> }</b></p><p><b> }</b><
105、/p><p> userClient類中函數(shù)為</p><p> public UserClient(TcpClient tcpClient)</p><p><b> {</b></p><p> this.TcpClient = tcpClient;</p><p> NetworkSt
106、ream ns = tcpClient.GetStream();</p><p> Br = new BinaryReader(ns);</p><p> Bw = new BinaryWriter(ns);</p><p><b> }</b></p><p><b> 3 文件傳送模塊</b&
107、gt;</p><p> 開啟窗體后,接收端執(zhí)行監(jiān)聽線程。當(dāng)接收到客戶發(fā)起的文件傳入請求后,彈出消息提示對話框,提示用戶對請求進(jìn)行處理,同意或者拒絕接收。若同意接收,則彈出文件保存對話框,用戶選擇文件保存路徑并確認(rèn)后,發(fā)送接收信號(hào)給文件發(fā)送端,啟動(dòng)計(jì)時(shí)器開始接收文件流,將遠(yuǎn)程文件保存在本地,并在文件傳輸過程中對文件傳輸狀態(tài)進(jìn)行反饋,文件接收完畢后,關(guān)閉計(jì)時(shí)器,關(guān)閉文件流,并在狀態(tài)欄上顯示出完畢狀態(tài)。若拒絕接收,
108、則向發(fā)送端返回拒絕信號(hào),繼續(xù)執(zhí)行監(jiān)聽線程,等待下一次的文件傳入請求。</p><p> 文件傳輸具體代碼: </p><p> private void FileSend()</p><p><b> {</b></p><p><b> try</b></p>&l
109、t;p><b> {</b></p><p> int bufferLen = 1024 * 1024;//定義1Mb的發(fā)送緩沖區(qū)</p><p> byte[] buffer = new byte[bufferLen];</p><p> int readLen = 0;</p><p> System
110、.Diagnostics.Stopwatch watch = new System.Diagnostics.Stopwatch();</p><p> watch.Start();</p><p> while ((readLen = fs.Read(buffer, 0, bufferLen)) != 0)</p><p><b> {</b&
111、gt;</p><p> userClient.Bw.Write(readLen);</p><p> userClient.Bw.Write(buffer, 0, readLen);</p><p> userClient.Bw.Flush(); //改變發(fā)送進(jìn)度條的進(jìn)度</p><p> this.HandleSysncContr
112、l(tspb, "UpdateProgressRate", readLen.ToString());</p><p><b> }</b></p><p> watch.Stop();</p><p> long useTimeMS = watch.ElapsedMilliseconds;</p><
113、;p> long useTimeS = useTimeMS / 1000;</p><p> long useTimeMin = useTimeS / 60;</p><p> string useTimeStr = "";</p><p> if (useTimeMin >= 1)</p><p>
114、 useTimeStr = useTimeMin + "分";</p><p> else if (useTimeS >= 1)</p><p> useTimeStr = useTimeS + "秒";</p><p><b> else</b></p><p>
115、useTimeStr = useTimeMS + "毫秒";</p><p> double speedKB = (1.0 * this.fs.Length / 1024) / (useTimeMS / 1000);// KB/S表示</p><p> double speedMB = 1.0 * speedKB / 1024;// MB/S表示</p&
116、gt;<p> string speedStr = "";</p><p> if (speedMB >= 1.0)</p><p> speedStr = string.Format("{0:0.##}MB/S", speedMB);</p><p><b> else</b>
117、;</p><p> speedStr = (int)speedKB + "";</p><p> string waringInfo = "文件[" + this.fileName + "]傳送完畢,用時(shí):" + useTimeStr + ",平均傳送速度:" + speedStr;</p>
118、<p> this.formChatToOne.AddWaringInfoToRtContent(waringInfo); //提示文件成功發(fā)送 </p><p><b> }</b></p><p> catch (Exception ee)</p><p><b> {</b></p>
119、;<p> MessageBox.Show("文件傳送異常: " + ee.Message);</p><p><b> }</b></p><p><b> finally</b></p><p><b> {</b></p><p>
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 多媒體教室管理系統(tǒng)設(shè)計(jì)
- 多媒體畢業(yè)設(shè)計(jì)
- 多媒體網(wǎng)絡(luò)教室系統(tǒng)
- 多媒體教室設(shè)計(jì)方案
- 多媒體教室設(shè)計(jì)技術(shù)方案
- 多媒體教室設(shè)計(jì)方案
- 多媒體教室設(shè)計(jì)技術(shù)方案
- 多媒體教室方案
- 多媒體教室培訓(xùn)
- 多媒體畢業(yè)設(shè)計(jì)論文
- 多媒體講臺(tái)設(shè)計(jì)【畢業(yè)設(shè)計(jì)】
- 畢業(yè)設(shè)計(jì)----多媒體設(shè)備管理系統(tǒng)
- 多媒體教室與學(xué)科專用教室
- 多媒體教室設(shè)計(jì)方案(doc)
- 實(shí)驗(yàn)二 多媒體教室系統(tǒng)的設(shè)計(jì)與組建
- 多媒體教室教學(xué)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 學(xué)校多媒體教室設(shè)計(jì)方案
- 多媒體課件畢業(yè)設(shè)計(jì)論文
- 多媒體課件畢業(yè)設(shè)計(jì)論文
- 多媒體教室管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn).pdf
評論
0/150
提交評論