📄 demo30.java
字号:
msgContent,
"linkid=0123456789012");
}
catch(IllegalArgumentException e)
{
showStateMsg("提交短消息请求的输入参数不合法");
e.printStackTrace();
return null;
}
catch(Exception e)
{
showStateMsg("提交短消息请求处理异常");
e.printStackTrace();
return null;
}
}
/**
* 根据用户输入的消息生成QueryMsg
* @return CMPPQueryMessage 对象
*/
private CMPPQueryMessage getQueryMsg()
{
String strDate = QueryDate.getText().trim();
if( strDate.length() != 8 )
{
showStateMsg("查询日期输入参数不合法");
return null;
}
try
{
SimpleDateFormat sdf = new SimpleDateFormat();
//根据年月日生成Date类型
Date queryDate = java.sql.Date.valueOf(strDate.substring(0,4) + "-" + strDate.substring(4,6) + "-" + strDate.substring(6,8));
//Date queryDate = sdf.parse(strDate);
int queryType = Integer.parseInt(QueryType.getText().trim());
String queryCode = QueryCode.getText().trim() ;
return new CMPPQueryMessage(queryDate,queryType,queryCode,"");
}
catch(IllegalArgumentException ex)
{
//add invoke
ex.printStackTrace();
showStateMsg("查询参数输入参数不合法");
return null;
}
catch(Exception e)
{
e.printStackTrace();
return null;
}
}
/**
* 根据用户输入的消息生成CancelMsg
* @return CMPPCancelMessage 对象
*/
private CMPPCancelMessage getCancelMsg()
{
try
{
byte[] msg_Id = CancelMsgId.getText().trim().getBytes();
return new CMPPCancelMessage(msg_Id);
}
catch(IllegalArgumentException ex)
{
ex.printStackTrace() ;
showStateMsg("取消短消息参数输入参数不合法");
return null;
}
catch(Exception e)
{
e.printStackTrace();
return null;
}
}
/**
* 对提交请求后收到的响应消息进行处理。
* @param msg 提交短消息请求后收到的响应消息
* @return 返回处理CMPP_Submit_REP的操作结果
*/
private void ProcessSubmitRep(CMPPMessage msg)
{
//收到的响应消息转换成repMsg
CMPP30SubmitRepMessage repMsg = (CMPP30SubmitRepMessage)msg;
if(repMsg!=null && repMsg.getResult()==0)
{
sendSuccessMsgSum ++;
}
}
/**
* 对提交查询请求后收到的响应消息进行处理。
* @param msg 提交查询短消息请求后收到的响应消息
* @return 返回处理CMPP_Query_REP的操作结果
*/
private void ProcessQueryRep(CMPPMessage msg)
{
CMPPQueryRepMessage queryRep = (CMPPQueryRepMessage)msg;
//根据响应消息去查询结果,根据需要是否显示
mt_tlmsg = queryRep.getMtTlmsg();
mt_tlusr = queryRep.getMtTlusr();
mt_scs = queryRep.getMtScs();
mt_wt = queryRep.getMtWt();
mt_fl = queryRep.getMtFl();
mo_scs = queryRep.getMoScs();
mo_wt = queryRep.getMoWt();
mo_fl = queryRep.getMoFl();
showStateMsg("mt_tlmsg:"+mt_tlmsg+",mt_tlusr:"+mt_tlusr+
",mt_scs:" +mt_scs+",mt_wt"+mt_wt+
",mt_fl:"+mt_fl+",mo_scs:"+mo_scs);
}
/**
* 对提交取消请求后收到的响应消息进行处理。
* @param msg 提交短消息请求后收到的响应消息
* @return 返回处理CMPP_Cancel_REP的操作结果
*/
private boolean ProcessCancelRep(CMPPMessage msg)
{
CMPPCancelRepMessage cancelRep = (CMPPCancelRepMessage)msg;
if(cancelRep.getSuccessId()==0)
{
showStateMsg("取消操作成功");
return true;
}
else
{
showStateMsg("取消操作失败");
return false;
}
}
/**
* 对收到短讯中心下发的短消息的处理。
* @param msg 短讯中心下发的短消息
*/
public void ProcessRecvDeliverMsg(CMPPMessage msg)
{
CMPP30DeliverMessage deliverMsg = (CMPP30DeliverMessage)msg;
//下发的消息
if(deliverMsg.getRegisteredDeliver()==0)
{
try
{
if(deliverMsg.getMsgFmt()==8)
{
showStateMsg("接收消息: 主叫号码="+
deliverMsg.getSrcterminalId()+";内容="+
new String(deliverMsg.getMsgContent(),"UTF-16BE"));
}
else
{
showStateMsg("接收消息: 主叫号码="+
deliverMsg.getSrcterminalId()+";内容="+
new String(deliverMsg.getMsgContent())+";destterm="+
new String(deliverMsg.getDestnationId())+";serviceid="+
new String(deliverMsg.getServiceId())+";tppid="+
deliverMsg.getTpPid()+";tpudhi="+
deliverMsg.getTpUdhi()+";msgfmt"+
deliverMsg.getMsgFmt()+";srctermid="+
new String(deliverMsg.getSrcterminalId())+";deliver="+
deliverMsg.getRegisteredDeliver()+";msgcontent="+
new String(deliverMsg.getMsgContent())+";LinkID="+
new String(deliverMsg.getLinkID()));
}
}
catch(Exception e)
{
e.printStackTrace();
}
}
else
{
//状态报告消息,不处理
showStateMsg("收到状态报告消息: stat="+
new String(deliverMsg.getStat())+"dest_termID="+
new String(deliverMsg.getDestTerminalId())+";destterm="+
new String(deliverMsg.getDestnationId())+";serviceid="+
new String(deliverMsg.getServiceId())+";tppid="+
deliverMsg.getTpPid()+";tpudhi="+
deliverMsg.getTpUdhi()+";msgfmt"+
deliverMsg.getMsgFmt()+";srctermid="+
new String(deliverMsg.getSrcterminalId())+";deliver="+
deliverMsg.getRegisteredDeliver()+";LinkID="+
new String(deliverMsg.getLinkID()));
}
recvDeliverMsgSum++;
}
/**
* 通知SMC下发的Terminate消息
*/
public void Terminate()
{
showStateMsg("SMC下发终断消息");
loginSmProxy = false;
smp = null;
}
/**
* 显示SmProxy运行程序的状态
* @str 显示的内容
*/
private void showStateMsg(String str)
{
if((str==null)||(str==""))
{
return ;
}
allRecvContent.insert(sdf.format(new Date())+str+"\n",0);
//防止内存耗尽
if (allRecvContent.getText().length()>2*1024)
{
allRecvContent.setText(allRecvContent.getText().substring(0,1024));
}
allRecvContent.setCaretPosition(0);
}
/**
*显示统计消息
*/
private void showStatisticData()
{
SendMsgSum.setText(new Integer(sendMsgSum).toString());
SuccessSendSum.setText(new Integer(sendSuccessMsgSum).toString());
RecvMsgSum.setText(new Integer(recvDeliverMsgSum).toString());
}
/**
* 检查系统连接状态消息
*/
class MoniterThread extends Thread
{
public MoniterThread()
{
setDaemon(true);
}
public void run()
{
String connState=null;
try
{
while(true)
{
connState = smp.getConnState();
showStatisticData();
if(connState==null) connState = "系统运行正常";
myProxyState.setText(connState);
//一秒钟检查10次
sleep(100);
}
}
catch(Exception e)
{
showStateMsg("状态监控线程出现异常退出");
e.printStackTrace();
}
}
}
/**
* 使用SmProxy应用程序,必须登录系统
*/
void loginButton_actionPerformed(ActionEvent e)
{
//判断系统是否已经初始化了
if(loginSmProxy)
{
showStateMsg("系统已经初始化");
return ;
}
try
{
args.set("source-addr",loginName.getText().trim());
args.set("shared-secret",loginPass.getText().trim());
showStateMsg("系统正在初始化");
smp = new MySMProxy30(this,args);
showStateMsg("系统初始化成功");
loginSmProxy = true;
new MoniterThread().start();
}
catch(Exception ex)
{
showStateMsg("系统初始化失败");
this.myProxyState.setText(ex.getMessage());
ex.printStackTrace();
loginSmProxy = false;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -