flash中通過XMLSocket監控生產系統(3-2)
發表時間:2024-06-10 來源:明輝站整理相關軟件相關文章人氣:
[摘要]不斷向客戶端發送不同類型的有意義的XML數據,模擬生產系統的不同狀態。考慮到功能的簡便性,服務端只是每2秒向客戶端發送一條隨機類型的數據,而沒有包括模擬生產系統及時的狀態,如在某一時刻發生錯誤時,發送一條表示錯誤類型的數據,在實際設計編程中,基于本文中的例子,可以輕松擴展實現所需功能。 publi...
不斷向客戶端發送不同類型的有意義的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=" + 系統時刻+ / >"