📄 mycngpdemo1.java
字号:
{ //我们只发送短消息,而不启动线程
threadNum =0;
runInterval = 0;
}
//对输入的参数做有效性判断
if((threadNum>0)&&(runInterval>0))
{
//submitMsg = getSubmitMsg();
StartSendThread(threadNum,runInterval,sleepInterval);
}
else
{
try
{
sendMsgSum ++;
ProcessSubmitRep(smp.send(getSubmitMsg()));
}
catch(IllegalArgumentException ex)
{
//add
}
catch(Exception ex)
{
ex.printStackTrace();
}
}
}
/**
* 处理用户发送的取消短消息的请求
*/
void CancelButton_actionPerformed(ActionEvent e)
{
//如果没有成成功登录
if(!loginSmProxy)
{
showStateMsg("系统没有成功登录");
return ;
}
if(smp!=null)
{
try
{
smp.close();
showStateMsg("退出登录");
loginSmProxy = false;
}
catch(IllegalArgumentException ex)
{
ex.printStackTrace();
showStateMsg("取消短消息命令的输入参数不合法");
}
catch(Exception ex)
{
ex.printStackTrace();
showStateMsg("取消短消息命令的处理出现异常");
}
}
}
/**
* 根据用户输入的消息生成SubmitMsg
* @return CNGPSubmitMessage 对象
*/
private CNGPSubmitMessage getSubmitMsg() {
Args arg = Env.getMsgConfig().getArgs("CNGPSubmitMessage");
String SPId = arg.get("spid", "3AAAQQQQQQ");
int subType = arg.get("subtype", 1);
int needReport = arg.get("needReport", 1);
int priority = arg.get("priority", 0);
String serviceId = arg.get("serviceId", "abcdefghij");
String feeType = arg.get("FeeType", "01");
int feeUserType = arg.get("FeeUserType", 0);
String feeCode = arg.get("FeeCode", "123456");
int msgFormat = arg.get("msgFormat", 15);
String validTime = null;
String atTime = null;
/*DateFormat format = DateFormat.getDateInstance();
String strValidTime = arg.get("ValidTime", "");
if (strValidTime != "") {
try {
validTime = format.parse(strValidTime);
}
catch (Exception ex2) {
}
}
else {
validTime = null;
}
String strAtTime = arg.get("AtTime", "");
if (strAtTime != "") {
try {
atTime = format.parse(strAtTime);
}
catch (Exception ex3) {
}
}
else {
atTime = null;
}*/
String srcTermId = arg.get("srcTermId", "106213512345678");
String chargeTermId = arg.get("ChargeTermId", "075540512345678");
int destTermIdCount = arg.get("destTermIdCount", 0);
String[] rcvMobile = new String[0];
int msgLength = arg.get("msgLength", 8);
String msgContent = arg.get("msgmsgContent", "测试test");
int protocolValue = arg.get("protocolValue", 0);
if(service_Id.getText().trim() != "")
{
serviceId = service_Id.getText().trim();
}
if(fee_Terminal_Id.getText().trim() != "")
{
chargeTermId = fee_Terminal_Id.getText().trim();
}
if (src_Terminal_Id.getText() != "") {
srcTermId = src_Terminal_Id.getText().trim();
}
//接受号码前缀非空
if(dest_Terminal_Id.getText().trim() != null)
{
//起止数值之差在指定范围内
destTermIdCount = Integer.parseInt(calledTo.getText().trim()) -
Integer.parseInt(calledFrom.getText().trim()) + 1;
if(destTermIdCount >0 && destTermIdCount <= 100)
{
//"号码前缀 + 后缀"不能超过21位
if((dest_Terminal_Id.getText().trim().length() +
calledTo.getText().trim().length()) <= 21)
{
rcvMobile = new String[destTermIdCount + 1];
int start = Integer.parseInt(calledFrom.getText().trim());
for(int i = start;i <= start + destTermIdCount;i ++)
{
int len = calledTo.getText().trim().length();
String postfix_Dest_Terminal_Id = "000000000000000000000" + i;
postfix_Dest_Terminal_Id = postfix_Dest_Terminal_Id.substring(
postfix_Dest_Terminal_Id.length()- len);
rcvMobile[i - start] = dest_Terminal_Id.getText().trim() + postfix_Dest_Terminal_Id;
}
}
}
else
{
destTermIdCount = 0;
}
}
if(msg_Content.getText().trim() != null)
{
msgContent = msg_Content.getText().trim();
}
try
{
CNGPSubmitMessage submitMsg = new CNGPSubmitMessage(
SPId,
subType,
needReport,
priority, //priority
serviceId, //serviceId
feeType, //FeeType
feeUserType, //FeeUserType
feeCode, //FeeCode
msgFormat, //msgFormat
validTime,
atTime, //定时发送时间(null:立即发送)
srcTermId, //srcTermId
chargeTermId, //ChargeTermId
destTermIdCount, //destTermIdCount
rcvMobile, //destTermId
msgLength, //msgLength
msgContent, //msgmsgContent
protocolValue //protocolValue
);
return submitMsg;
}
catch(IllegalArgumentException e)
{
showStateMsg("提交短消息请求的输入参数不合法");
e.printStackTrace();
return null;
}
catch(Exception e)
{
showStateMsg("提交短消息请求处理异常");
e.printStackTrace();
return null;
}
}
/**
* 根据用户输入的消息生成CancelMsg
* @return CNGPCancelMessage 对象
*/
private CNGPExitMessage getCancelMsg()
{
try
{
return new CNGPExitMessage();
}
catch(IllegalArgumentException ex)
{
ex.printStackTrace() ;
showStateMsg("取消短消息参数输入参数不合法");
return null;
}
catch(Exception e)
{
e.printStackTrace();
return null;
}
}
/**
* 对提交请求后收到的响应消息进行处理。
* @param msg 提交短消息请求后收到的响应消息
* @return 返回处理CNGP_Submit_REP的操作结果
*/
private void ProcessSubmitRep(CNGPMessage msg)
{
//收到的响应消息转换成repMsg
CNGPSubmitRespMessage repMsg = (CNGPSubmitRespMessage)msg;
if(repMsg!=null)
{
sendSuccessMsgSum ++;
}
}
/**
* 对收到短讯中心下发的短消息的处理。
* @param msg 短讯中心下发的短消息
*/
public void ProcessRecvDeliverMsg(CNGPMessage msg)
{
CNGPDeliverMessage deliverMsg = (CNGPDeliverMessage) msg;
//下发的消息
if(deliverMsg.getIsReport()==0)
{
try {
showStateMsg("接收消息: " + deliverMsg.toString());
}
catch (Exception e) {
e.printStackTrace();
}
}
else
{
//状态报告消息,不处理
showStateMsg("收到状态报告消息: " + deliverMsg.toString());
}
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 CNGPSMProxy(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 + -