基于Java网络编程的多客户端多媒体展示系统的设计与实现

2022-09-12

随着现代科技的不断发展, 如果要在第一时间内将最新资讯传递给受众, 那么利用多媒体展示系统是一种良好的方法。从目前来看, 多媒体展示系统是综合了文本、图片、音频、视频等各种实时数据, 在网络上进行发布、管理到播放。目前应用范围极其广泛, 涵盖了医院、卖场、超市、宾馆等各种公共领域。多媒体展示系统采用开放式接口, 能够将多种应用集成进来, 多媒体展示系统可以记录媒体播放时间、播放次数、播放范围, 并且具备强大的交互功能, 属于一种新媒体。

一、可行性分析

(一) 技术可行性

多媒体展示系统以Java和Eclipse作为编程语言和开发工具, 采用了C/S体系结构, 将所有的多媒体内容将任务合理分配到Client端和Server端来实现, 能够使系统达到最稳定的效果, 产生高品质的显示质量, 具备很高的技术可行性。

(二) 经济可行性

多媒体展示系统无需添置新硬件, 在很大程度上可以实施成本。利用现有以太网, 不进行网络改造, 避免了增加硬件成本, 并且保证了系统的扩展可行性。多媒体展示系统可以进行远程管理, 并实现信息同步, 管理成本得到了大幅度的降低。客户端能够自动开关机, 播放内容自我更新, 真正实现了无人值守。系统的使用可充分利用现有人员, 无须安排专门人员。

二、需求分析

随着当前科技的高速发展, 离子、液晶等平板显示设备的普及, 网络多媒体播放器取代了原有的光盘或单机多媒体播放, 播放种类更加丰富、功能也由单一变得多元。数字媒体信息发布系统目前应用范围已极其广泛, 涵盖了医院、卖场、超市、宾馆等各种公共领域。系统采用开放式接口, 可将多种应用集成进来。系统实现强大的交互功能, 一种新媒体已经展示在我们面前。

三、功能分析

根据需求分析对系统的功能进行详细的分析设计。

(一) 系统划分

系统划分如下:

1. 服务器端模块

(1) 监听客户端的请求

(2) 分配IP

2. 客户端模块

(1) 向服务器端发送请求

(2) 序列化游鱼信息

(3) 多媒体处理

(二) 模块功能分析

1. 服务器端功能

(1) 监听客户端的请求。服务端发送和接收IP多播包使用的是多播数据报套接字类。MulticastSocket类提供广播式通信功能, 允许数据报以广播方式发送到客户端。DatagramSocket类只允许数据报发送到一个指定的目的地址, 在很多情况下需要向多点传送。如要在Internet网络进行视频播放, 如果不是采用了点对点技术, 而是仍然采用服务器作为数据源播放, 当有大量用户提出请求的情况下, 服务器程序就要传送大量的数据给客户端程序。用单点传送, 每个客户程序都需要复制一份数据, 那么服务器程序要传送上大量的数据信息, 这必然导致网络阻塞, 降低网络的传输速度。服务端采用Java的类集来存储客户端信息。在类集的操作时使用了动态对象数组, 能够避免数组这一数据结构造成的缺陷。

(2) 分配IP。在客户端请求服务端时, 服务端会将客户端的信息添加到类集LinkedList中, 当游鱼游出屏幕时, 服务端会将类集中下一个客户端的IP广播出去, 完成游鱼图片在下一台主机的屏幕上显示, 如图1所示。

2. 客户端功能

(1) 向服务器端发送请求。客户端发送和接收数据报包的套接字采用了DatagramSocket。数据报套接字上单独编址和路由发送或接收的包。把DatagramSocket绑定到通配符地址, 能够实现接收广播包。数据报包是客户端采用的一种方法, 它能够进行连接包投递。报文能够根据数据报包中的信息在网络上的机器间进行传送。但由于机器间报传送路由的不同, 到达顺序也不尽相同。 (2) 序列化游鱼信息。客户端采用Serializable接口将游鱼的信息进行序列化。对象序列化是把对象的状态信息转换为可以存储或传输的形式的过程。对象序列化时, 对象的当前状态倍写入进临时或永久性存储区域。在需要取出时, 则从存储区域内读取, 重新将该对象创建。 (3) 多媒体处理。系统采用sun.audio.AudioStream进行多媒体处理。java的魅力之一就是对多媒体的支持, 如图2所示。

四、系统设计

下面将对系统的总体结构进行介绍, 系统结构设计的好坏可以直接影响系统总体设计。

(一) 系统总体结构

本系统主要由服务端和客户端两大部分组成, 如图3所示:

(二) 服务端结构设计

服务端用于监听客户端的请求, 当游鱼游出屏幕时将发送信息于下一个主机, 如图4所示:

(三) 客户端结构设计

客户端向服务端发送请求, 服务端接受其详细信息。如图5所示:

五、系统的详细设计及实现

上面已经将系统划分成了多个模块, 并且将模块按照软件工程的原理拼装起来, 与此同时, 确定了模块功能, 设计出了模块之间外部接口。下面进行模块的详细算法设计及执行过程设计。

(一) 服务端功能实现

(1) 接受客户端的请求。服务端发送和接收IP多播包, 主要是使用MulticastSocket多播数据报套接字。MulticastSocket是一种 (UDP) DatagramSocket, 它能够参与Internet上多播主机组。多播组通过D类IP地址和标准UDP端口号指定。根据多播组所用端口创建MulticastSocket, 再使用joinGroup (InetAddress groupAddr) 方法加入多播组。消息被发送到多播组时, 多播组所有主机和端口的都会接收到信息。不是多播组成员的套接字也可以向它发送信息。leaveGroup (InetAddress addr) 方法可以使得套接字不再是组中的成员。如果MulticastSocket多播数据报套接字比较多, 那么它能够提前占有多播组和端口, 并且每个套接字均能接收到组数据报。 (2) 游鱼处理。在客户端, 当游鱼游出屏幕时, 客户端则会向服务端发送信息。服务端根据信息判断游鱼的游出屏幕的方向, 将下一台主机的IP返还给客户端。

(二) 客户端功能实现

(1) 客户端初始化。Swing组件是客户端初始化采用的一个工具包, Swing是一个java GUI工具包, Swing内嵌了许多GUI器件, 如:文本框、按钮、表等内容。Swing提供很多纯Java写成的屏幕显示元素, 所以可移植性非常好, 它们是JFC的一部分, 这就是说你能够在很多平台上使用JAVA支持的所有面板。但是这些元器件属于轻量级, 执行速度不快, 但是能够在所有平台上保持一致。 (2) 客户端发送请求。客户端也采用MulticastSocket多播数据报套接字类来发送和接收IP多播包。

(三) 系统效果

根据C/S系统体系结构, 当服务端启动后, 客户端才可以请求。

(1) 客户端请求。客户端A请求服务端如图6所示:

(2) 当多个客户端请求服务端后, 则会在局域网中形成一个环形的“公共水池”, 所谓的“公共水池”就是环形网络中各个主机的屏幕, 当游鱼游出某个屏幕时也就进入另一个相邻计算机屏幕的时刻, 并且鱼的游动方向、起始位置、振幅、运行速度等参量都是随机产生的。这样不断的循环, 从一个屏幕游到另一个屏幕, 达到多客户的展示效果。

六、结论

本文设计的多客户端多媒体展示系统是在构成一个环形网络的局域网内, 游鱼可以在这个环形网络的“公共水池”中连续的自由游动, 不断循环, 从一个屏幕游到另一个屏幕, 达到多客户的展示效果, 能够综合文本、图片、音频、视频等各种实时数据, 在网络上进行发布、管理到播放, 具有广阔的运用前景。

摘要:继报刊、广播、电视、互联网等四大媒体之后产生的新型媒体——多媒体展示系统, 是一种以信息输出播放为目的, 以信息发布传递为主导的软件系统。基于Java网络编程的多客户端多媒体展示系统是在构成一个环形网络的局域网内, 游鱼可以在这个环形网络的“公共水池”中连续的自由游动, 所谓的“公共水池”就是环形网络中各个主机的屏幕, 当游鱼游出某个屏幕时也就进入另一个相邻计算机屏幕的时刻。这样不断的循环, 从一个屏幕游到另一个屏幕, 达到多客户的展示效果。

关键词:多媒体展示系统,Client/Server,多线程

参考文献

[1] 赵文靖.Java程序设计基础与上机指导[D].北京:清华大学出版社, 2007.

[2] 王路群.Java高级程序设计[D].北京:中国水利水电出版社, 2007.

[3] 高保庆, 傅秀芬, 孟利.一个基于MVC的通用Client/Server应用开发框架[J].计算机技术与发展, 2008, 18 (7) :126-128.

[4] 屈文新, 樊晓桠, 张盛兵.多核多线程处理器存储技术研究进展[J].计算机科学, 2007, 34 (4) :13-16.

本文来自 99学术网(www.99xueshu.com),转载请保留网址和出处

上一篇:中职学生顶岗实习过程中存在的问题及对策下一篇:互联网时代会计信息质量提升对策研究