資源描述:
《在局域網(wǎng)內(nèi)實(shí)現(xiàn)圖像的實(shí)時(shí)傳輸.doc》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、在局域網(wǎng)內(nèi)實(shí)現(xiàn)圖像的實(shí)時(shí)傳輸在局域網(wǎng)內(nèi)實(shí)現(xiàn)圖像的實(shí)時(shí)傳輸(實(shí)現(xiàn)環(huán)境bcb6.0+MSSQL)本來(lái)要去睡覺(jué)的,但是為了整理一下該文檔,還是坐在了電腦旁。明天睡個(gè)大頭覺(jué)。之所以使用bcb6.0,是因?yàn)橛盟_(kāi)發(fā)速度快。但是一個(gè)前輩曾經(jīng)給我說(shuō)過(guò),bcb開(kāi)發(fā)的軟件沒(méi)有商業(yè)價(jià)值,當(dāng)然他說(shuō)的有點(diǎn)偏頗,不過(guò)也反映了bcb的境遇。不過(guò)如果開(kāi)發(fā)較小的項(xiàng)目,使用它的優(yōu)勢(shì)還是明顯的。轉(zhuǎn)入正題,在網(wǎng)絡(luò)傳輸信息,有兩種模型:C/S、P2P。C/S模式需要在網(wǎng)絡(luò)內(nèi)有個(gè)服務(wù)器,客戶端傳輸信息都要通過(guò)服務(wù)器進(jìn)行轉(zhuǎn)發(fā)。當(dāng)傳輸信息量較小的文本信息時(shí),采用該
2、方法因?yàn)槠鋵?shí)現(xiàn)較簡(jiǎn)單,方便控制信息的傳輸,所以可以使用,以前的QQ就是采用這個(gè)方法,但是如果傳輸信息量較大的圖像信息時(shí),顯然當(dāng)客戶端較多時(shí),服務(wù)器的負(fù)擔(dān)會(huì)呈級(jí)數(shù)增加,顯然是不合適的。只有使用P2P模式,即節(jié)點(diǎn)之間傳輸,這樣可以把負(fù)載平衡到各個(gè)節(jié)點(diǎn),效率很高。但是它的缺點(diǎn)也是很明顯的,每個(gè)節(jié)點(diǎn)都要負(fù)責(zé)維護(hù)其他節(jié)點(diǎn)的狀態(tài)信息,實(shí)現(xiàn)起來(lái)比較復(fù)雜。這個(gè)也是現(xiàn)在的研究熱點(diǎn),并有成品出現(xiàn),但是也是應(yīng)用于較小的網(wǎng)絡(luò)。在做這個(gè)網(wǎng)絡(luò)協(xié)作系統(tǒng)時(shí),由于人力資源較弱,所以我采用了這種的方法。就是把這兩者結(jié)合,在圖像信息傳輸?shù)臅r(shí)候采用P2P模式
3、,但是需要在網(wǎng)絡(luò)內(nèi)運(yùn)行一個(gè)服務(wù)器來(lái)負(fù)責(zé)維護(hù)各個(gè)節(jié)點(diǎn)的狀態(tài)信息。這樣可以極大的減少服務(wù)器的負(fù)荷,同時(shí)節(jié)點(diǎn)間傳輸?shù)膶?shí)現(xiàn)也比較容易。實(shí)現(xiàn)方法:服務(wù)器運(yùn)行,監(jiān)視各個(gè)節(jié)點(diǎn)的狀態(tài)。當(dāng)一個(gè)節(jié)點(diǎn)登陸網(wǎng)絡(luò)時(shí),需要向服務(wù)器報(bào)告自己的狀態(tài),并請(qǐng)求得到它希望傳輸圖像信息的狀態(tài)信息。當(dāng)?shù)玫叫畔r(shí),便不再與服務(wù)器進(jìn)行交互,而是自己把圖像向節(jié)點(diǎn)傳輸。當(dāng)該節(jié)點(diǎn)退出網(wǎng)絡(luò)時(shí)要向服務(wù)器報(bào)告??梢?jiàn)服務(wù)器的工作就是一個(gè)索引服務(wù)器,而負(fù)載已經(jīng)平衡到了各個(gè)節(jié)點(diǎn)。應(yīng)用背景:在網(wǎng)絡(luò)協(xié)作學(xué)習(xí)系統(tǒng)中實(shí)時(shí)協(xié)作學(xué)習(xí)電子白板系統(tǒng)中的電子白板是一個(gè)虛擬公共學(xué)習(xí)區(qū)域,在問(wèn)題求解的過(guò)
4、程中它作為主要的問(wèn)題解決方案編輯的協(xié)作空間,而不同于聊天室只承擔(dān)組內(nèi)成員溝通和情感維系的工作,以及與教師就學(xué)習(xí)問(wèn)題互動(dòng)的渠道。?實(shí)時(shí)協(xié)作學(xué)習(xí)電子白板的功能①基本的書寫的功能,可以對(duì)文字進(jìn)行協(xié)作編輯②對(duì)文字可以進(jìn)行重點(diǎn)標(biāo)示,以及擦除。③對(duì)協(xié)作動(dòng)作進(jìn)行控制,即在操作前必須首先控制申請(qǐng),操作結(jié)束后解除控制。④可以對(duì)文字和標(biāo)記進(jìn)行點(diǎn)對(duì)點(diǎn)的傳輸,亦可在組內(nèi)廣播。代碼實(shí)現(xiàn):節(jié)點(diǎn)與服務(wù)器的交互采用C/S模式,使用控件ClientSocket/ServerSocket,節(jié)點(diǎn)間傳輸信息,由于需要實(shí)現(xiàn)接收和發(fā)送兩個(gè)功能,所以在每個(gè)節(jié)點(diǎn)都要
5、有兩個(gè)控件,一個(gè)用來(lái)接收,一個(gè)用來(lái)發(fā)送,該系統(tǒng)中使用了NMStrm/NMStrmServ控件。數(shù)據(jù)庫(kù)采用MSSQL,當(dāng)然要存放在服務(wù)器上。有必要強(qiáng)調(diào)的是,要把圖像的BMP格式轉(zhuǎn)化為JPG格式在進(jìn)行傳輸,這樣可以大大縮小傳輸?shù)男畔⒘俊T摲椒ǖ娜秉c(diǎn):在傳輸圖像時(shí),采用的是傳輸整個(gè)圖像方法。雖然經(jīng)過(guò)格式優(yōu)化,但是還是有很大的信息量,較好的方法是傳輸在白板上的動(dòng)作信息,比如畫線動(dòng)作,可以采集關(guān)鍵部位的坐標(biāo)和畫筆顏色信息傳輸,這樣更能減少信息量的傳輸(仲日給提的建議),但是實(shí)現(xiàn)起來(lái)較麻煩,考慮到時(shí)間問(wèn)題,沒(méi)有實(shí)現(xiàn)。部分源代碼:(
6、部分代碼參考csdn的bcb版和節(jié)點(diǎn)端//---------------------------------------------------------------------------#include#pragmahdrstop#include"board.h"#include"Unit7.h"#include"Unit1.h"#include//------------------------------------------------------------------
7、---------#pragmapackage(smart_init)#pragmaresource"*.dfm"TWhiteBoard*WhiteBoard;//---------------------------------------------------------------------------__fastcallTWhiteBoard::TWhiteBoard(TComponent*Owner):TForm(Owner){}//------------------------------------
8、---------------------------------------void__fastcallTWhiteBoard::FormCreate(TObject*Sender){//禁用關(guān)閉按鈕EnableMenuItem(GetSystemMenu(Handle,false),SC_CLOSE,MF_DISABLED
9、M