### flash 中通过 XMLSocket 监控生产系统(3-1)

不断向客户端发送不同类型的有意义的 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=" + 系统时刻+ / >"