WEB开发网
开发学院软件开发Java 使用 Sun SPOT 作为构建监视器 阅读

使用 Sun SPOT 作为构建监视器

 2009-12-22 00:00:00 来源:WEB开发网   
核心提示: radiostream 协议类似于点对点套接字连接,它为基站与远程 SPOT 之间提供可靠、有缓冲的基于流的 I/O,使用 Sun SPOT 作为构建监视器(7),另外,还打开数据输入和输出流,startApp() 委托给另一个方法,后者又产生一个线程,然后,一条关于构建的简单的消息被写到输出流

radiostream 协议类似于点对点套接字连接,它为基站与远程 SPOT 之间提供可靠、有缓冲的基于流的 I/O。另外,还打开数据输入和输出流。然后,一条关于构建的简单的消息被写到输出流,远程 SPOT 读取该消息,然后返回一条简短的确认消息。接着 CanaryHandler 结束,等待下一次构建状态改变时再次被调用。

BuildCanary 代码

当 CanaryHandler 打开一个 radiostream 连接并发送一条关于构建的简单消息时,连接的另一端是 BuildCanary,它是部署在远程 SPOT 上的一个 Java ME MIDlet。MIDlet 与 servlet 和 EJB 类似,也是实现一个专门的接口,运行时环境负责在它的生命周期中的某些时候调用某些方法。

例如,MIDlet 的典型的入口点是 startApp() 方法。在 BuildCanary 中,startApp() 委托给另一个方法,后者又产生一个线程,以侦听来自 CanaryHandler 的消息。清单 4 显示 BuildCanary 的入口点的代码:


清单 4. BuildCanary 的入口点
/** 
 * MIDlet call to start our application. 
 */ 
protected void startApp() throws MIDletStateChangeException { 
  run(); 
} 
 
/** 
 * Main application run loop which spawns a thread to listen for updates 
 * about the build status from the host. 
 */ 
private void run() { 
 
  // Spawn a thread to listen for messages from the host. 
  new Thread() { 
 
    public void run() { 
      try { 
 
        updateBuildStatus(); 
 
      } catch (IOException ex) { 
 
        try { 
          if (connection != null) { 
            connection.close(); 
          } 
 
          if (dos != null) { 
            dos.close(); 
          } 
 
          if (dis != null) { 
            dis.close(); 
          } 
 
          ex.printStackTrace(); 
        } catch (IOException ex1) { 
          // Can't do much now. 
          ex1.printStackTrace(); 
        } 
      } 
    } 
  }.start(); 
} 

上一页  2 3 4 5 6 7 8 9 10  下一页

Tags:使用 Sun SPOT

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接