您的位置:程序门 -> java -> j2me



求助


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


求助
发表于:2007-04-19 20:57:37 楼主
在j2me中如何解决发送短消息和多媒体的端口号冲突问题?

现象1:同时开mms与sms监听连接只有先开的有效。
例如:
messageconnection   mmsconn   =   (messageconnection)   connector.open( "mms://:8888 ");
mmsconn.setmessagelistener(this);
messageconnection   smsconn   =   (messageconnection)   connector.open( "sms://:6666 ");  
smsconn.setmessagelistener(this);
.....
public   void   notifyincomingmessage(messageconnection   conn)   {

...
system.out.println( "start   receive.. ");    
message   msg   =   conn.receive();
system.out.println( "receive   complete! ");
...    
}
这时若在8888端口收到multimessage则一切正常。若在6666端口收到testmessage或binarymessage则
message   msg   =   conn.receive()不能执行。只有start   receive..而无receive   complete!(没有任何异常抛出)
ps:就算没有mmsconn.setmessagelistener(this)同样不能接收sms消息。
反之亦然;

现象2:在发送mms时必须把所以监听连接关掉。若mms连接创建在sms连接之前,那么发送sms也要把所以

连接关掉。
例如:
(1)
messageconnection   smsconn   =   (messageconnection)   connector.open( "sms://:6666 ");
smsconn.setmessagelistener(this);
。。。
messageconnection   smssendconn   =   (messageconnection)   connector.open( "sms://+xxxx:6666 ");

......
smssendconn.send(shortmessage);
..
这种情况正常。
(2)
messageconnection   mmsconn   =   (messageconnection)   connector.open( "mms://:8888 ");  
smsconn.setmessagelistener(this);
。。。
messageconnection   mmssendconn   =   (messageconnection)   connector.open( "mms://+xxxx:8888 ");

......
mmssendconn.send(multimessage);
..
在发送时抛出io异常:connection   closed.而经过测试,mmssendconn并没有关闭。但只要在发送前关掉mmsconn   即
mmsconn.close();
mmssendconn.send(multimessage);
则正常发送。
(3)
messageconnection   mmsconn   =   (messageconnection)   connector.open( "mms://:8888 ");

messageconnection   smsconn   =   (messageconnection)   connector.open( "sms://:6666 ");  
smsconn.setmessagelistener(this);
。。。
messageconnection   smssendconn   =   (messageconnection)   connector.open( "sms://+xxxx:6666 ");
......
smssendconn.send(shortmessage);
..
则情况同(2)发送前关掉mmsconn,smsconn则ok;
发表于:2007-04-20 08:42:261楼 得分:0
upppp


快速检索

最新资讯
热门点击