張璞

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