WMA1.0中MessageConnection的问题

stamp80 2005-11-08 10:08:44
请问,在一个收发短信的应用里面如果同时打开两个MessageConnection的话,会不会有问题,还有哪位大侠试过了?烦请赐教!
------------------------------------
...全文
97 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
prok 2005-11-08
  • 打赏
  • 举报
回复
mark.建议自己试一下.应该不会冲突.端口号可以设置成不同的.
zhengyun_ustc 2005-11-08
  • 打赏
  • 举报
回复
第一,同一个端口是不允许两个程序监听的。
参见注释:
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;
}

13,100

社区成员

发帖
与我相关
我的任务
社区描述
Java J2ME
社区管理员
  • J2ME社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧