让变化成为计划的一部分

欢迎大家探讨本Blog涉及的所有软件课题。我的Google Talk ID:zhengyun(at)gmail.com。

我最希望软件带给用户的感受是:美好的体验、舒适感、简约、干净...

posts - 32, comments - 8, trackbacks - 0, articles - 0
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

第一,同一个端口是不允许两个程序监听的。
参见注释:
Trying to bind to an already reserved local address causes an IOException to be thrown!
也就是说。调用(MessageConnection)Connector.open("sms://:5000"); 时就会抛出异常。

第二,(MessageConnection)Connector.open监听不同端口是没有问题的。比如http://www.cnblogs.com/Files/zhengyun_ustc/SimplePushRegistry.rar的例子,你就可以看出这一点。在midlet的startApp中,
 protected void startApp() throws MIDletStateChangeException {
  
  if (!init) {
      init = true;
      String[] conns =
        PushRegistry.listConnections(false);
      System.out.println("Found " + conns.length +
        " connections.");
      for(int ccnt=0; ccnt < conns.length; ccnt++){
        DatagramHandler handler =
          new DatagramHandler(conns [ccnt], this);
        connectionHandlers.addElement(handler);
      handler.start();
      }
    }

 }
从而得到所有注册的连接,并转发给线程处理。线程就可以根据所传入的连接名称,自行打开:
   public DatagramHandler(String c, PushSMSListner midlet){
     try {
       dgc = (DatagramConnection)Connector.open(c);
     } catch (IOException x){
         x.printStackTrace();
     }
  
  m_midlet = midlet;
   }


评论

# re: 同一个MIDlet是否允许多个MessageConnection?  回复  更多评论   

2009-04-07 13:02 by byfk
不错

只有注册用户登录后才能发表评论。


网站导航: