张璞
摘 要 多客户端的多媒体展示系统是继多媒体展示系统的特性在构成一个环形网络的局域网内,游鱼可以在这个环形网络的“公共水池”中连续的自由游动,且鱼的游动方向、起始位置、振幅、运行速度等参量都是随机产生的。所谓的“公共水池”就是环形网络中各个主机的屏幕,当游鱼游出某个屏幕时也就进入另一个相邻计算机屏幕的时刻。这样不断的循环,从一个屏幕游到另一个屏幕,达到多客户的展示效果。
关键词 多媒体展示系统 系统设计 多线程
中图分类号: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.