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