首页 理论教育 系统消息和对象的实现

系统消息和对象的实现

时间:2022-02-12 理论教育 版权反馈
【摘要】:众所周知,在完全面向对象的语言Java中,一切都是对象,包括消息。本机在对DatagramPacket对象进行解析后,触发一个事件,将本机的Java Applet根据事件触发机制,将接收的信息在本机的电子白板上重现。移动对象消息的实现代码如下:为了在Internet上传输、处理所需的信息,需要建立电子白板的应用层传输控制协议集。前面两项内容用于文字传输中的信息存储,其中name代表发送消息的用户名称,message则用于存储用户需要向其他用户发送的消息内容。

无论是客户端还是服务器端,接收到消息以后的处理过程都是对图元列表的相应操作,正是通过图元列表的一致性来保证用户桌面的一致性。为了提高对图元列表的操作效率,对于每一个加入到图元列表中的对象,都分配了一个虚拟的唯一ID号,并根据ID号建立索引,就可以用ID号来快速操作图元列表了。当某一个客户端执行了一个移动对象操作(如从idx㊣移至idn㊣),则整个消息的处理过程如图5-8所示。

图5-8 移动对象消息处理过程

从以上分析可看出,在电子白板的实现过程中,消息的产生与传递相当于一个神经系统,保证了整个白板系统中所有客户端和服务器分布式图元列表的同步,实现了所有用户的桌面一致性。白板用户的协同工作都是通过对象的操作来实现的,系统中的对象被设计为具有相同的接口。常用的系统对象主要有直线、矩形(填充)、椭圆(填充)、文本、手写等,因此,用户可以很容易地根据需要自行扩充。

众所周知,在完全面向对象的语言Java中,一切都是对象,包括消息。这里的消息主要包括对象添加消息、对象移动消息、对象编辑消息、对象删除消息等。由于不但要通过网络传送消息,还要对消息进行特殊的处理(如加密等),所以所有的消息都应实现系列化接口Serializable,以保证能通过对象流ObjectStream来进行输入输出。同时,要利用流的嵌套机制,将对象流转化为字节流,以进行加密处理。为了阻止重发攻击的发生,在每个消息中还要预设时间戳标记,同时为了保证发送消息用户和时间戳的真实性,消息对时间戳和用户名一起进行签名。服务器从Object InputStream中接收数据流,将其还原为Transf Var对象,然后生成一个DatagramPacket对象,将Transf Var对象中的信息取出并打包到DatagramPacket对象,同时生成一个DatagramSocket对象,通过它将数据包经网络地址发送到局域网上。客户端首先生成一个DatagramServer对象,从指定的端口号上接收广播数据包,并将接收的数据包放到DatagramPacket对象中。本机在对DatagramPacket对象进行解析后,触发一个事件,将本机的Java Applet根据事件触发机制,将接收的信息在本机的电子白板上重现。这个过程采用UDP协议进行通信。移动对象消息的实现代码如下:

5.5.1 通信协议集的制定

为了在Internet上传输、处理所需的信息,需要建立电子白板的应用层传输控制协议集。应用层传输控制协议集模型将采用服务器/客户机的请求/应答模式。根据需要实现的白板功能,协议集中包括文字传输和图形传输的内容。应用层传输控制协议的设计应该在保证功能的前提下尽量简洁,以提高传输效率。

具体的协议集用多元组(name、message、color、x0、y0、x1、y1、num、lineWidth)来表示。前面两项内容用于文字传输中的信息存储,其中name代表发送消息的用户名称,message则用于存储用户需要向其他用户发送的消息内容。后面七项内容用于图形传输。其中color的值标识了传输图形的颜色,lineWidth则定义了图形的线宽。num值是为了唯一的标识图形而设定的,它的值代表了用于传输的图形特征,具体含义见表5-2。x0、y0、x1和y1用于图形的定位和大小控制,它其实就是表示两点的坐标值。

表5-2 协议集里num的含义

5.5.2 Java实现橡皮筋技术

图形绘制过程都采用了橡皮筋技术。该技术利用Java图形方式下的异或模式实现,其原理是不断地将原位置处的图形清除,再在新位置画图形。Java的Graphics类中的setXORMode方法设置图形操作模式为异或模式,在该模式下进行图形操作时,图形颜色决定于当前颜色和设置颜色的异或运算结果。

在具体编程实现时,将绘图模式从默认的正常模式切换到异或模式,设置异或颜色为背景色。由于鼠标按下后的第一次移动不需要擦除旧图,因此设置一个标记first,用于判断鼠标是否第一次移动,如果是则值为true,否则为false。当first的值为false时,程序需要执行一次擦除旧图的操作。所有图形的橡皮筋技术的工作原理和过程如图5-9所示。

图5-9 橡皮筋技术的工作过程

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈