邮件订阅
5ucms模版,flash中通过XMLSocket监控生产系统(3-1)
作者: 来源: 日期:2017/4/13 7:16:49 浏览量:27(滞后) 人气:LOADING...(实时) 【

5ucms模版,flash中通过XMLSocket监控生产系统(3-1)三、实战

1、服务端

  首先,我们来构造服务端。考虑到本文的重点只是用XMLSocket 进行及时监控,而服务端知识来模拟生产系统,为了节省篇幅,我们对服务端的功能进行了简化,只要求其能够做到(使用Java语言完成服务端的编写)监听指定的端口,当有客户端请求时,启动一个新的线程与之建立连接。

try{

ServerSocket server = new ServerSocket(Integer.parseInt (args[0]));

while(true) {

System.out.println(" Start Listenning the TCP port " + Integer.parseInt(args[0]));
System.out.println("-------------------------------------------");

Socket client = server.accept();
System.out.println("Remote Host is "+ client.getInetAddress());
new ServerThread (client).start();
}
}catch (IOException ex){

ex.printStackTrace();
}

  以上语句中,先是通过启动Java程序时传进来的端口参数,建立一个服务端套接字(ServerSocket)对象server,在随后的死循环中,调用其accept()方法监听指定的端口,如果有客户端连接请求时,生成一个套接字对象client,并用其作为参数生成并启动一个新的线程与客户端交互。


三、实战

2、Flash客户端

在了解了服务端向客户端发送的数据后,我们来构造本文的核心内容——用Flash客户端来连接服务端,并以不同的颜色及时显示不同类型的数据。

1) 启动Flash MX,通过 File -> New 菜单创建一个新的Flash 文档。

2) 通过 Insert -> Layer 菜单,添加一个层,并把现有的两个层名字分别修改为UI 和 Action ,如图一。其中,Action层是我们统一放程序代码的地方,Flash是一个编程极其灵活的开发工具,可以放置代码的地方非常多,如MovieClip内部、各个祯、按钮等内部都可以放置程序代码(关于代码放置的详细阐述,请参见作者的另一篇文章“Flash 编程规范”),假如MovieClip嵌套过深的话,这将增加以后维护程序的难度。
所以作者推荐尽可能把程序代码放置在一个统一的位置。



3) 选中 Action层,打开Action面板,切换到专家模式,加入以下注释,如图二:

//Flash创作时对象的初始化

//Flash运行时对象的初始化

//自定义函数



为了以后程序维护的方便,建议尽可能把所有的程序写在一处,象本例中,所有程序都写在Action层中,为了程序的结构清晰,建议用以上注释把整个程序分成几个部分。

不断向客户端发送不同类型的有意义的XML数据,模拟生产系统的不同状态。考虑到功能的简便性,服务端只是每2秒向客户端发送一条随机类型的数据,而没有包括模拟生产系统及时的状态,如在某一时刻发生错误时,发送一条表示错误类型的数据,在实际设计编程中,基于本文中的例子,可以轻松扩展实现所需功能。

public void run() {

try {

while (true) {

System.out.println(this.getName() + "------" + i++);
d = new Date();

if(new Random().nextInt()*100 < 50){

str = "< MESSAGE TYPE=\"error\" TEXT=\"Hello, my name is Morgan!\" TIME=\"" + d.toString() + "\"/>";
} else {

str = "";
}

byte[] s= str.getBytes();

out.write(s);
out.write(0);
out.flush();

this.sleep(2000);
}

} catch (Exception ex){

ex.printStackTrace();
}
}

  以上语句是自定义线程类ServerThread的run()方法,首先利用随机数条件if语句,随机产生不同类型的XML数据,接着用OutputStream输出流对象,输出XML数据的字节数组数据,为了表示该条数据已发送完成,再发送一个0字节,随后调用输出流的flush()方法清空缓存,让输出流立即发送数据。最后使线程暂停2秒钟,等线程再次执行时,循环以上步骤。

这样,在客户端就可以每2秒钟收到一条随机类型的XML数据。详见本文附带的程序源码。

在服务端,为了简便,只是随机向两种类型(normal类型和error类型)的数据:

< MESSAGE TYPE="error" TEXT=" 数据内容" TIME=" + 系统时刻+ / >"
< MESSAGE TYPE="normal" TEXT=" 数据内容" TIME=" + 系统时刻+ / >"

选择5ucms.org 选择未来

本站推荐: 5ucms模板下载 5ucms插件下载 仿站联系Q3876307       [复制给好友] [打印] [关闭] [返回] [顶部]
上一篇:5ucms仿站,flash中通过XMLSocket监控生产系统(3-2)
下一篇:5ucms帮助flash中通过XMLSocket监控生产系统(2-3)
本站声明:本网站所载文章等内容,目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权及其它问题,请在30日内与本网联系(Email:3876307#qq.com),我们将在第一时间删除内容。若原创内容转载请注明出处。
5ucms模版,flash中通过XMLSocket监控生产系统(3-1)的关键词:
评论信息
相关分类
本周热门
本月热门
关于我们 - 版权/免责 申明 - 建站服务 - 网站地图 - 稿件投递 - 联系我们 - 5ucms
Copyright © 2008-2015 www.5ucms.org