多媒體通信平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)_第1頁(yè)
多媒體通信平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)_第2頁(yè)
多媒體通信平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)_第3頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡(jiǎn)介

1、多媒體通信平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)     一、多媒體信息流與指令控制流協(xié)同協(xié)議(MCCP)的設(shè)計(jì)? 多媒體信息流與控制信息流協(xié)同控制協(xié)議(Mutilmedia Data-stream and Instruction-stream Cooperative Control Protocol ,MCCP ),是本系統(tǒng)設(shè)計(jì)的一個(gè)應(yīng)用于多媒體教學(xué)中協(xié)同控制的協(xié)議。MCCP定義了一個(gè)封裝多媒體數(shù)據(jù)流與控制信息流的數(shù)據(jù)格式。通過這個(gè)協(xié)議,可以實(shí)現(xiàn)服務(wù)器與客戶機(jī)的交互控制。? 1、多媒體電子教室的數(shù)據(jù)傳輸流分析? 教師機(jī)和學(xué)生機(jī)之間存在兩種類型的通信,一是指令信息(

2、如教師的操作指導(dǎo)信息和通信指令等),二是多媒體數(shù)據(jù)(如當(dāng)前實(shí)時(shí)屏幕顯示)。前者的數(shù)據(jù)量較小,而后者的數(shù)據(jù)量則較大。? 2、協(xié)同控制協(xié)議(MCCP)設(shè)計(jì)思想? 本系統(tǒng)中,教師機(jī)需要遠(yuǎn)程控制學(xué)生機(jī),這種遠(yuǎn)程控制要求教師機(jī)操縱學(xué)生機(jī)就象操作本機(jī)一樣。為了實(shí)現(xiàn)這種控制,一方面,教師機(jī)需要看見學(xué)生機(jī)的屏幕,即系統(tǒng)要把學(xué)生機(jī)的屏幕傳輸?shù)浇處煓C(jī)上:另一方面,系統(tǒng)需要一個(gè)協(xié)議,利用這個(gè)協(xié)議,教師機(jī)的本地任意鼠標(biāo)、鍵盤操作指令等信息能夠無延遲的傳輸?shù)绞芸刂频倪h(yuǎn)程學(xué)生機(jī)上并得到解釋執(zhí)行,從而實(shí)現(xiàn)教師機(jī)對(duì)學(xué)生機(jī)的控制。對(duì)于屏幕傳輸,可以采用兩種方法:一是純軟件技術(shù)實(shí)現(xiàn)方法:二是軟、硬件技術(shù)結(jié)合實(shí)現(xiàn)方法。本文采用第二

3、種實(shí)現(xiàn)方法,提出了一個(gè)將指令數(shù)據(jù)流和多媒體數(shù)據(jù)流分開傳送、統(tǒng)一控制的通訊模型,針對(duì)這一通信模型的設(shè)計(jì)思想,本系統(tǒng)提出了一個(gè)協(xié)同控制協(xié)議(MCCP ),其基本設(shè)計(jì)思想就是通過一該協(xié)議封裝系統(tǒng)協(xié)同控制中用到的控制數(shù)據(jù)流(也稱指令數(shù)據(jù)流),然后在被控制方進(jìn)行解釋、執(zhí)行。? 二、通信系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)? 通信控制核心層的主要任務(wù)是利用局域網(wǎng)傳輸協(xié)議和專用顯存信息傳輸硬件為上層應(yīng)用提供多媒體通信服務(wù)功能。當(dāng)上層應(yīng)用(如教師機(jī)要查看學(xué)生機(jī)當(dāng)前屏幕)需要通信時(shí),首先要建立通信雙方的通信連接,然后進(jìn)行數(shù)據(jù)傳輸,最后關(guān)閉連接。因此,通信核心層的主要任務(wù)就是為上層應(yīng)用提供建立連接、連接保持和多媒體數(shù)據(jù)傳輸及斷開連接

4、三大功能。? (1)通信實(shí)體? TCP/IP網(wǎng)絡(luò)通信中進(jìn)程采用端口的概念來標(biāo)識(shí),因此系統(tǒng)中通信實(shí)體(指一個(gè)教師機(jī)服務(wù)器程序創(chuàng)建的Socket對(duì)象或一個(gè)學(xué)生機(jī)客戶程序創(chuàng)建的Socket對(duì)象)在通信之前必須建立相應(yīng)的端口號(hào),本文設(shè)定通信實(shí)體的端口號(hào)均為6666(由于每臺(tái)計(jì)算機(jī)上僅允許一個(gè)客戶程序或一個(gè)服務(wù)器程序運(yùn)行,故不會(huì)造成沖突)。一條通信連接可以表示為一個(gè)形如(協(xié)議,本地地址,本地端口號(hào),遠(yuǎn)地地址,遠(yuǎn)地端口號(hào))的五元組。一個(gè)完整的 Socket連接可以用象這樣的一個(gè)五元組來描述。本設(shè)計(jì)從Microsoft Visual C+基本類庫(kù)(MFC)提供的CSocket類派生出一個(gè)新類CConnect

5、Socket類,并對(duì)其進(jìn)行擴(kuò)充,加入姓名、學(xué)號(hào)、性別、網(wǎng)絡(luò)標(biāo)識(shí)(TP地址)、網(wǎng)絡(luò)連接狀態(tài)標(biāo)識(shí)等屬性,重載OnReceive函數(shù),使該類含有教師機(jī)與學(xué)生機(jī)進(jìn)行通信的所有必要信息、,系統(tǒng)中所有通一訊實(shí)體都是該類的一個(gè)實(shí)例。? (2)連接的建立? 學(xué)生機(jī)與教師機(jī)建立連接的步驟如下:學(xué)生機(jī)向教師機(jī)發(fā)出登錄連接服務(wù)器請(qǐng)求:mConnectSocket->Connect(1pAddress,nPort).其中m_pConnectSocket是學(xué)生機(jī)創(chuàng)建的一個(gè)CConnectSocket類的套接字對(duì)象,1pAddress是教師機(jī)服務(wù)器的IP地址,nPort是約定的通信端口號(hào)。教師機(jī)每監(jiān)聽到該端口的一個(gè)

6、連接請(qǐng)求后,就新建一個(gè)相同的學(xué)生套接字對(duì)象,即CConnectSocket類的對(duì)象,來建立與該學(xué)生機(jī)的連接。由于一個(gè)教室有多個(gè)學(xué)生機(jī)存在,因此需要一個(gè)組織形式,以便對(duì)多個(gè)學(xué)生套接字對(duì)象進(jìn)行管理保存,以保持每一個(gè)連接,為此本系統(tǒng)定義一個(gè)指針鏈表對(duì)象m_ socketList,當(dāng)教師機(jī)每建立了一個(gè)新的學(xué)生套接字對(duì)象時(shí),就將其添加到m_ socketList鏈表中,這樣系統(tǒng)便保存了所有登錄學(xué)生機(jī)與教師機(jī)服務(wù)器的連接。如果學(xué)生機(jī)連接成功,就立即發(fā)送該學(xué)生套接字對(duì)象的屬性的具體值。教師機(jī)接收后將賦值給m_ socketList中對(duì)應(yīng)的學(xué)生套接字對(duì)象。這樣在以后的通信傳輸控制過程中,教師機(jī)根據(jù)每臺(tái)學(xué)生機(jī)對(duì)

7、象的某個(gè)關(guān)鍵屬性(它的值是唯一的)的值,就可以在連接鏈表中匹配出要求的學(xué)生套接字對(duì)象,從而完成與指定學(xué)生機(jī)的通信。(3)數(shù)據(jù)傳輸控制由上面的講述可以知道,數(shù)據(jù)的傳輸包括指令流和多媒體數(shù)據(jù)兩種。在多媒體網(wǎng)絡(luò)教學(xué)過程中,教師機(jī)需要向所有的學(xué)生機(jī)或指定的學(xué)生機(jī)發(fā)送各種指令控制,以完成各種復(fù)雜的教學(xué)活動(dòng)??偟恼f來通信控制核心層需要處理以下兩種情況:第一,一般指令流傳輸。系統(tǒng)中有些教學(xué)活動(dòng)(如提交作業(yè))只需傳輸單純的指令命令來進(jìn)行控制,這時(shí)情況就比較簡(jiǎn)單,通信核心層只需要根據(jù)上層應(yīng)用的要求利用下層局域網(wǎng)傳輸協(xié)議進(jìn)行指令的傳輸。為了支持此類信息傳送,本文首先定義了一個(gè)指令類Cinstruction類,對(duì)系

8、統(tǒng)所有的指令項(xiàng)進(jìn)行封裝,然后在派生的CConnnectSocket類中實(shí)現(xiàn)了三個(gè)基本功能。發(fā)送指令操作:void SendInstruction (CInstruction* pInstr);接受指令操作:void ReceiveInstruction (CInstruction* plnstr);重載函數(shù):virtual void OnReceive(int nErrorCode);由于系統(tǒng)中的指今項(xiàng)數(shù)量眾多,本系統(tǒng)采用CSocket類的串行化技術(shù),與歸檔對(duì)象CArchive類和套接字文件對(duì)象CSocketFile類一起來管理指令數(shù)據(jù)的發(fā)送和接收。第二,多媒體數(shù)據(jù)傳輸。當(dāng)教學(xué)活動(dòng)涉及到多媒體

9、數(shù)據(jù)的傳輸與接受時(shí),例如查看學(xué)生的屏幕、教師給學(xué)生演示自己的操作或教師指導(dǎo)學(xué)生的操作等教學(xué)活動(dòng),都需要實(shí)時(shí)的傳送與接收屏幕。本系統(tǒng)多媒體數(shù)據(jù)的傳輸是通過多媒體硬件卡在通信核心層的協(xié)調(diào)控制下傳輸?shù)?。多媒體信息傳送的具體工作流程如下: 初始化硬件卡,void InitCard();/初始 化,設(shè)置相關(guān)參數(shù)。發(fā)送屏幕方調(diào)用硬件卡控制函數(shù)使硬件卡處于發(fā)送狀態(tài):WriteCard(SEND_ VGA);該函數(shù)原型如下:void WriteCard(unsigned short ctrlword);參數(shù)ctrlword可取三個(gè)值:.KEEP VGA:恢復(fù)初始屏幕,使硬件卡處于初始狀態(tài);.SEND VGA:

10、發(fā)送自己的屏幕,使硬件卡處于發(fā)送屏幕狀態(tài);.RECV VGA:接受屏幕,使硬件卡處于接受屏幕狀態(tài)。同時(shí)通信核心層利用局域網(wǎng)通信協(xié)議向接受方發(fā)送接受圖像的指令:pInstr->m少Recv=TRUE;/設(shè)置“接收屏幕”的指令m bRecv為“真”。pSock->SendInstruction(pInstr) ;/向接收屏幕方發(fā)送接受圖像指令。接受方收到指令后調(diào)用硬件卡控制函數(shù)接受圖像:WriteCard (RECV一GA);這樣便完成了屏幕的傳輸與接受。當(dāng)發(fā)送方要停止傳送圖像時(shí),控制過程基本類似,只是雙方調(diào)用的硬件卡控制函數(shù)的參數(shù)設(shè)置為KEEP少GA,即:WriteCard (KEE

11、P一GA).(4)連接的斷開當(dāng)學(xué)生機(jī)與教師機(jī)的連接斷開時(shí),教師機(jī)需要將該學(xué)生機(jī)通訊對(duì)象從全局鏈表中刪除,然后釋放連接。通信核心層的協(xié)調(diào)控制過程如下:初始學(xué)生示范首先教師機(jī)應(yīng)用程序在通信核心層控制下調(diào)用硬件卡控制函數(shù)使硬件卡處于接收狀態(tài):WriteCard (RECV一GA) ;/接收狀態(tài)。同時(shí)通信核心層利用局域網(wǎng)通信協(xié)議向其它學(xué)生機(jī)發(fā)送“接收?qǐng)D象”的指令:向選定的示范源學(xué)生機(jī)下達(dá)“發(fā)送圖像”的指令。其它學(xué)生機(jī)接收到“接收?qǐng)D象”指令后,在通信核心層控制下調(diào)用函數(shù):WriteCard(RECV一GA),準(zhǔn)備接收?qǐng)D象。示范源學(xué)生機(jī)接收到“發(fā)送圖象”指令后,調(diào)用函數(shù):WriteCard ( SEND

12、VGA );發(fā)送圖象。? 當(dāng)通信核心層確認(rèn)所有機(jī)器都接收到正確的指令后,硬件卡開始工作,示范源學(xué)生的屏幕將被傳送到教師機(jī)和其它的學(xué)生機(jī)上,示范開始。? 教師協(xié)同示范當(dāng)教師根接管學(xué)生示范時(shí),通信核心層響應(yīng)上層要求,向示范學(xué)生機(jī)發(fā)送“教師接管”指令,示范學(xué)生機(jī)接收到后,它的操作鼠標(biāo)、鍵盤)被禁止,并啟動(dòng)一個(gè)用于接收鼠標(biāo)、鍵盤指令流的線程準(zhǔn)備接受教師的控制;同時(shí)通信核心層啟動(dòng)教師機(jī)端的一個(gè)線程,用于將一切活動(dòng)(鼠標(biāo)、鍵盤)轉(zhuǎn)化為一系列的鼠標(biāo)指令流或鍵盤指令流并利用下層基于TCP/IP標(biāo)準(zhǔn)的傳輸協(xié)議傳送給示范學(xué)生機(jī),示范學(xué)生機(jī)收到后調(diào)用底層API函數(shù)響應(yīng)鼠標(biāo)、鍵盤的操作,這樣教師機(jī)完全接管學(xué)生進(jìn)行示范。當(dāng)教師機(jī)要退出接管讓學(xué)生機(jī)繼續(xù)示范時(shí),只需發(fā)送“退出接管”指令。? 退出? 當(dāng)學(xué)生示范結(jié)束或教師發(fā)送指令要求退出時(shí),所有機(jī)器在各自的通信核心層控制下,調(diào)用WriteCard C KEEP VGA )函數(shù),恢復(fù)自己的屏幕

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論