張璞
摘 要 多客戶端的多媒體展示系統(tǒng)是繼多媒體展示系統(tǒng)的特性在構(gòu)成一個(gè)環(huán)形網(wǎng)絡(luò)的局域網(wǎng)內(nèi),游魚可以在這個(gè)環(huán)形網(wǎng)絡(luò)的“公共水池”中連續(xù)的自由游動(dòng),且魚的游動(dòng)方向、起始位置、振幅、運(yùn)行速度等參量都是隨機(jī)產(chǎn)生的。所謂的“公共水池”就是環(huán)形網(wǎng)絡(luò)中各個(gè)主機(jī)的屏幕,當(dāng)游魚游出某個(gè)屏幕時(shí)也就進(jìn)入另一個(gè)相鄰計(jì)算機(jī)屏幕的時(shí)刻。這樣不斷的循環(huán),從一個(gè)屏幕游到另一個(gè)屏幕,達(dá)到多客戶的展示效果。
關(guān)鍵詞 多媒體展示系統(tǒng) 系統(tǒng)設(shè)計(jì) 多線程
中圖分類號(hào):TP3 文獻(xiàn)標(biāo)識(shí)碼:A
1功能分析
1.1系統(tǒng)模塊劃分
(1)服務(wù)器端模塊,包括監(jiān)聽客戶端的請(qǐng)求;分配IP。
(2)客戶端模塊,包括向服務(wù)器端發(fā)送請(qǐng)求;序列化游魚信息;多媒體處理。
1.2模塊功能分析
1.2.1服務(wù)器端功能
(1)監(jiān)聽客戶端的請(qǐng)求。服務(wù)端采用多播數(shù)據(jù)報(bào)套接字類用于發(fā)送和接收 IP 多播包。MulticastSocket類提供廣播式通信功能,允許數(shù)據(jù)報(bào)以廣播方式發(fā)送到客戶端。DatagramSocket類只允許數(shù)據(jù)報(bào)發(fā)送到一個(gè)指定的目的地址,在很多情況下需要向多點(diǎn)傳送。如要在Internet網(wǎng)絡(luò)進(jìn)行視頻播放,如果不是采用了點(diǎn)對(duì)點(diǎn)技術(shù),而是仍然采用服務(wù)器作為數(shù)據(jù)源播放,當(dāng)有大量用戶提出請(qǐng)求的情況下,服務(wù)器程序就要傳送大量的數(shù)據(jù)給客戶端程序。用單點(diǎn)傳送,每個(gè)客戶程序都需要復(fù)制一份數(shù)據(jù),那么服務(wù)器程序要傳送上大量的數(shù)據(jù)信息,這必然導(dǎo)致網(wǎng)絡(luò)阻塞,降低網(wǎng)絡(luò)的傳輸速度。
服務(wù)端采用Java的類集來存儲(chǔ)客戶端信息。在類集的操作中因?yàn)槭鞘褂妙惖男问綄?shí)現(xiàn)的動(dòng)態(tài)對(duì)象數(shù)組,所以對(duì)于任何對(duì)象所有的操作形式都一樣??梢员苊鈹?shù)組的缺陷。
(2)分配IP。在客戶端請(qǐng)求服務(wù)端時(shí),服務(wù)端會(huì)將客戶端的信息添加到類集LinkedList中,當(dāng)游魚游出屏幕時(shí),服務(wù)端會(huì)將類集中下一個(gè)客戶端的IP廣播出去,完成游魚圖片在下一臺(tái)主機(jī)的屏幕上顯示。
1.2.2客戶端功能
(1)向服務(wù)器端發(fā)送請(qǐng)求??蛻舳瞬捎肈atagramSocket來發(fā)送和接收數(shù)據(jù)報(bào)包的套接字。數(shù)據(jù)報(bào)套接字是包投遞服務(wù)的發(fā)送或接收點(diǎn)。每個(gè)在數(shù)據(jù)報(bào)套接字上發(fā)送或接收的包都是單獨(dú)編址和路由的。從一臺(tái)機(jī)器發(fā)送到另一臺(tái)機(jī)器的多個(gè)包可能選擇不同的路由,也可能按不同的順序到達(dá)。在 DatagramSocket 上總是啟用 UDP 廣播發(fā)送。為了接收廣播包,應(yīng)該將 DatagramSocket 綁定到通配符地址。在某些實(shí)現(xiàn)中,將 DatagramSocket 綁定到一個(gè)更加具體的地址時(shí)廣播包也可以被接收。客戶端采用表示數(shù)據(jù)報(bào)包。數(shù)據(jù)報(bào)包用來實(shí)現(xiàn)無連接包投遞服務(wù)。每條報(bào)文僅根據(jù)該包中包含的信息從一臺(tái)機(jī)器路由到另一臺(tái)機(jī)器。從一臺(tái)機(jī)器發(fā)送到另一臺(tái)機(jī)器的多個(gè)包可能選擇不同的路由,也可能按不同的順序到達(dá)。不對(duì)包投遞做出保證。
(2)序列化游魚信息。客戶端采用Serializable接口將游魚的信息進(jìn)行序列化。對(duì)象序列化將對(duì)象的狀態(tài)信息轉(zhuǎn)換為可以存儲(chǔ)或傳輸?shù)男问降倪^程。在序列化期間,對(duì)象將其當(dāng)前狀態(tài)寫入到臨時(shí)或持久性存儲(chǔ)區(qū)。以后,可以通過從存儲(chǔ)區(qū)中讀取或反序列化對(duì)象的狀態(tài),重新創(chuàng)建該對(duì)象。序列化使其他代碼可以查看或修改那些不序列化便無法訪問的對(duì)象實(shí)例數(shù)據(jù)。
(3)多媒體處理
系統(tǒng)采用sun.audio.AudioStream進(jìn)行多媒體處理。java 的魅力之一就是對(duì)多媒體的支持。
2系統(tǒng)設(shè)計(jì)
(1)系統(tǒng)總體結(jié)構(gòu):本系統(tǒng)主要由服務(wù)端和客戶端兩大部分組成。
(2)服務(wù)端結(jié)構(gòu)設(shè)計(jì):服務(wù)端用于監(jiān)聽客戶端的請(qǐng)求,當(dāng)游魚游出屏幕時(shí)將發(fā)送信息于下一個(gè)主機(jī),如圖1所示:
(3)客戶端結(jié)構(gòu)設(shè)計(jì):客戶端向服務(wù)端發(fā)送請(qǐng)求,服務(wù)端接受其詳細(xì)信息。
3系統(tǒng)的運(yùn)行環(huán)境
由于采用C/S架構(gòu),分服務(wù)器和客戶機(jī)分別描述(主要指系統(tǒng)配置):
服務(wù)器 操作系統(tǒng):Windows 7;工具:Eclipse;JDK:1.6
客戶機(jī) 操作系統(tǒng):Windows 7;工具:Eclipse;JDK:1.6
參考文獻(xiàn)
[1] 陳蓓青.多媒體信息展示與查詢系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].長江科學(xué)院院報(bào),2009,26(2):132-135.
[2] 汲業(yè).一種觸摸屏多媒體展示系統(tǒng)及其展示方法作者[M].大連:大連理工大學(xué)出版社,2010,120-123.
[3] 楊玉,李建軍,康婧.網(wǎng)絡(luò)信息系統(tǒng)從Client/Server到Browser/Server [J].哈爾濱商業(yè)大學(xué)學(xué)報(bào)(自然科學(xué)版),2008,54(4):43-45.