📄 sgipdemo.java
字号:
package demo.sgipdemo;
//不应使用到com.huawei.insa2包内的类
import com.huawei.smproxy.*;
import com.huawei.smproxy.comm.sgip.message.*;
import com.huawei.smproxy.util.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.Date;
import java.text.SimpleDateFormat;
import java.util.GregorianCalendar;
import java.lang.Thread;
public class SGIPDemo extends JFrame {//implements DemoConst{
private static Args args;
/** 短信收发接口*/
private MySGIPSMProxy smp = null;
private boolean loginSmProxy = false;
//定义CMPP_Submit_Rep统计消息
int sendMsgSum= 0; //发送消息的总数
int sendSuccessMsgSum = 0; //成功发送消息的总数
int recvDeliverMsgSum = 0; //接收消息的总数
//定义CMPP_Query_Rep统计消息
int mt_tlmsg = 0; //从SP接收消息的总数
int mt_tlusr = 0; //从SP接收的用户总数
int mt_scs =0; //成功转发数量
int mt_wt =0; //待转发数量
int mt_fl=0 ; //转发失败的数量
int mo_scs = 0; //向Sp成功送达的数量
int mo_wt = 0; //向SP待送达数量
int mo_fl = 0; //向SP送达失败的数量
//主要为了完成在多线程进行性能测试的时候使用
int cmppSubmitFrom =0;
int cmppSubmitTo = 0;
int calledIndex = 0;
String serviceId = null;
String feeTerminalId = null;
String msgSrc = null;
Date valid_Time = null;//new Date();
Date at_Time = null;//new Date();
String srcTerminalId = null;
String UserNumber [] = new String[1];
byte[] msgContent = null;
String destTerminalPhone = null;
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss.sss ");
JLabel jLabel2 = new JLabel();
JTextField service_Id = new JTextField();
JLabel jLabel3 = new JLabel();
JTextField fee_Terminal_Id = new JTextField();
JLabel jLabel4 = new JLabel();
JTextField msg_src = new JTextField();
JLabel jLabel5 = new JLabel();
JTextField src_Terminal_Id = new JTextField();
JLabel jLabel6 = new JLabel();
JTextField dest_Terminal_Id = new JTextField();
JLabel jLabel7 = new JLabel();
JTextField msg_Content = new JTextField();
JButton SendButton = new JButton();
JLabel jLabel8 = new JLabel();
JTextField ThreadNum = new JTextField();
JLabel jLabel9 = new JLabel();
JTextField threadRunInterval = new JTextField();
JLabel jLabel10 = new JLabel();
JTextField QueryDate = new JTextField();
JLabel jLabel11 = new JLabel();
JTextField QueryType = new JTextField();
JLabel jLabel12 = new JLabel();
JTextField QueryCode = new JTextField();
JToggleButton loginbutton = new JToggleButton();
JLabel jLabel13 = new JLabel();
JTextField CancelMsgId = new JTextField();
JButton logoutbutton = new JButton();
JLabel jLabel14 = new JLabel();
JLabel jLabel15 = new JLabel();
JTextField SendMsgSum = new JTextField();
JLabel jLabel16 = new JLabel();
JTextField SuccessSendSum = new JTextField();
JLabel jLabel17 = new JLabel();
JTextField RecvMsgSum = new JTextField();
JLabel jLabel21 = new JLabel();
JTextField threadSleepInterval = new JTextField();
JLabel jLabel22 = new JLabel();
JTextField myProxyState = new JTextField();
JLabel jLabel23 = new JLabel();
JTextField loginName = new JTextField();
JLabel jLabel24 = new JLabel();
JTextField loginPass = new JTextField();
JButton initbutton = new JButton();
JButton stopbutton = new JButton();
JScrollPane jScrollPane1 = new JScrollPane();
JTextArea allRecvContent = new JTextArea();
JLabel jLabel1 = new JLabel();
JLabel jLabel18 = new JLabel();
JTextField calledFrom = new JTextField();
JTextField calledTo = new JTextField();
public SGIPDemo()
{
/**@todo 界面布局。*/
try
{
jbInit();
this.setSize(new Dimension(620,450));
Rectangle r =
GraphicsEnvironment.getLocalGraphicsEnvironment()
.getScreenDevices()[0].getDefaultConfiguration().getBounds();
this.setLocation((int)(r.getWidth()-600)/2,(int)(r.getHeight()-450)/2);
}
catch(Exception e)
{
e.printStackTrace();
}
}
/**
* 发送消息线程的线程体,负责发送消息。
*/
public void Task()
{
sendMsgSum ++;
//发送短消息请求,并对返回的消息做解析,生成统计数据
//对于出现的异常则交给SendReqThread去捕获处理.
/* try
{
ProcessSubmitRep(smp.send(getSubmitMsg(calledIndex)));
} catch (Exception ex) {
ex.printStackTrace();
}*/
}
/**
* 启动发送短消息请求的线程
* @param threadNum 启动的线程的个数
*/
public void StartSendThread(int threadNum,int timeLong,int sleepInterval)
{
if(smp==null)
{
return ;
}
//启动发送线程
/* for(int i = 0;i<threadNum;i++)
{
new SendReqThread30("test",this,timeLong,sleepInterval).start();
}*/
}
/**
* 程序入口。
*/
public static void main(String[] a) throws Exception {
new SGIPDemo().show();
args = new Cfg("app.xml",false).getArgs("SGIPConnect");
}
private void jbInit() throws Exception {
this.getContentPane().setLayout(null);
this.getContentPane().setBackground(new Color(204, 230, 210));
this.setDefaultCloseOperation(3);
this.setForeground(Color.black);
this.setResizable(false);
this.setTitle("短消息网关测试程序");
jLabel2.setText("业务类型");
jLabel2.setBounds(new Rectangle(22, 61, 57, 22));
service_Id.setBorder(BorderFactory.createLineBorder(Color.black));
service_Id.setToolTipText("");
service_Id.setText("good news");
service_Id.setBounds(new Rectangle(99, 61, 131, 22));
jLabel3.setText("记费号码");
jLabel3.setBounds(new Rectangle(242, 61, 57, 22));
fee_Terminal_Id.setBorder(BorderFactory.createLineBorder(Color.black));
fee_Terminal_Id.setText("8989899");
fee_Terminal_Id.setBounds(new Rectangle(305, 61, 131, 22));
jLabel4.setText("消息来源");
jLabel4.setBounds(new Rectangle(450, 61, 58, 22));
msg_src.setBorder(BorderFactory.createLineBorder(Color.black));
msg_src.setText("huawei");
msg_src.setBounds(new Rectangle(506, 61, 75, 22));
jLabel5.setText("主叫地址");
jLabel5.setBounds(new Rectangle(22, 94, 59, 22));
src_Terminal_Id.setBorder(BorderFactory.createLineBorder(Color.black));
src_Terminal_Id.setToolTipText("源终端MSISDN号码, 即此短消息的主叫地址");
src_Terminal_Id.setText("86138");
src_Terminal_Id.setBounds(new Rectangle(99, 94, 131, 22));
jLabel6.setText("被叫地址");
jLabel6.setBounds(new Rectangle(242, 94, 58, 22));
dest_Terminal_Id.setBorder(BorderFactory.createLineBorder(Color.black));
dest_Terminal_Id.setToolTipText("目的用户手机号码");
dest_Terminal_Id.setBounds(new Rectangle(305, 94, 70, 24));
jLabel7.setText("短消息内容");
jLabel7.setBounds(new Rectangle(22, 124, 69, 22));
msg_Content.setBorder(BorderFactory.createLineBorder(Color.black));
msg_Content.setToolTipText("输入发送的短消息内容");
msg_Content.setText("this is a test");
msg_Content.setBounds(new Rectangle(99, 124, 483, 22));
SendButton.setBorder(BorderFactory.createEtchedBorder());
SendButton.setText("发送测试请求");
SendButton.setBounds(new Rectangle(492, 161, 91, 22));
SendButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(ActionEvent e) {
SendButton_actionPerformed(e);
}
});
jLabel8.setText("启动的线程数");
jLabel8.setBounds(new Rectangle(22, 161, 75, 22));
ThreadNum.setBorder(BorderFactory.createLineBorder(Color.black));
ThreadNum.setToolTipText("启动多个线程测试SmProxy提供的API");
ThreadNum.setText("0");
ThreadNum.setBounds(new Rectangle(99, 161, 76, 22));
jLabel9.setText("执行时长");
jLabel9.setBounds(new Rectangle(180, 161, 53, 22));
threadRunInterval.setBorder(BorderFactory.createLineBorder(Color.black));
threadRunInterval.setToolTipText("调用线程执行发送请求的时间长度");
threadRunInterval.setText("0");
threadRunInterval.setBounds(new Rectangle(237, 161, 76, 22));
jLabel10.setText("查询日期");
jLabel10.setBounds(new Rectangle(22, 190, 65, 22));
QueryDate.setBorder(BorderFactory.createLineBorder(Color.black));
QueryDate.setToolTipText("查询指定日期的短消息信息");
QueryDate.setText("20011210");
QueryDate.setBounds(new Rectangle(99, 190, 76, 22));
jLabel11.setText("查询类别");
jLabel11.setBounds(new Rectangle(180, 190, 57, 22));
QueryType.setBorder(BorderFactory.createLineBorder(Color.black));
QueryType.setToolTipText("0:查询总数,1:按照业务代码查询");
QueryType.setText("0");
QueryType.setBounds(new Rectangle(238, 190, 76, 22));
jLabel12.setText("业务类型");
jLabel12.setBounds(new Rectangle(320, 190, 54, 22));
QueryCode.setBorder(BorderFactory.createLineBorder(Color.black));
QueryCode.setToolTipText("");
QueryCode.setText("good news");
QueryCode.setBounds(new Rectangle(377, 190, 76, 22));
loginbutton.setBorder(BorderFactory.createEtchedBorder());
loginbutton.setText("登陆系统");
loginbutton.setBounds(new Rectangle(492, 190, 91, 22));
loginbutton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(ActionEvent e) {
loginbutton_actionPerformed(e);
}
});
jLabel13.setToolTipText("");
jLabel13.setText("消息标识");
jLabel13.setBounds(new Rectangle(22, 221, 64, 22));
CancelMsgId.setBorder(BorderFactory.createLineBorder(Color.black));
CancelMsgId.setToolTipText("发送短消息请求的时候指定的消息ID");
CancelMsgId.setBounds(new Rectangle(99, 221, 131, 22));
logoutbutton.setBorder(BorderFactory.createEtchedBorder());
logoutbutton.setToolTipText("");
logoutbutton.setText("退出登陆");
logoutbutton.setBounds(new Rectangle(492, 221, 91, 22));
logoutbutton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(ActionEvent e) {
logoutbutton_actionPerformed(e);
}
});
jLabel14.setFont(new java.awt.Font("Dialog", 0, 14));
jLabel14.setBorder(BorderFactory.createEtchedBorder());
jLabel14.setText("统计数据");
jLabel14.setBounds(new Rectangle(63, 262, 61, 22));
jLabel15.setText("发送消息总数");
jLabel15.setBounds(new Rectangle(24, 293, 81, 22));
SendMsgSum.setBorder(BorderFactory.createEtchedBorder());
SendMsgSum.setEditable(false);
SendMsgSum.setBounds(new Rectangle(113, 293, 74, 22));
jLabel16.setToolTipText("");
jLabel16.setText("成功发送消息数");
jLabel16.setBounds(new Rectangle(24, 320, 90, 22));
SuccessSendSum.setBorder(BorderFactory.createEtchedBorder());
SuccessSendSum.setEditable(false);
SuccessSendSum.setBounds(new Rectangle(113, 320, 74, 22));
jLabel17.setText("接收消息总数");
jLabel17.setBounds(new Rectangle(24, 347, 85, 22));
RecvMsgSum.setBorder(BorderFactory.createEtchedBorder());
RecvMsgSum.setToolTipText("Smc下发的消息的总素");
RecvMsgSum.setEditable(false);
RecvMsgSum.setBounds(new Rectangle(113, 348, 74, 22));
jLabel21.setToolTipText("");
jLabel21.setText("睡眠时长");
jLabel21.setBounds(new Rectangle(320, 161, 56, 22));
threadSleepInterval.setBorder(BorderFactory.createLineBorder(Color.black));
threadSleepInterval.setText("0");
threadSleepInterval.setBounds(new Rectangle(377, 161, 76, 22));
jLabel22.setBorder(BorderFactory.createEtchedBorder());
jLabel22.setText("运行状态 ");
jLabel22.setBounds(new Rectangle(26, 381, 58, 22));
myProxyState.setBorder(BorderFactory.createEtchedBorder());
myProxyState.setEditable(false);
myProxyState.setBounds(new Rectangle(101, 382, 484, 22));
jLabel23.setToolTipText("");
jLabel23.setText("登录帐号");
jLabel23.setBounds(new Rectangle(23, 21, 66, 22));
loginName.setBorder(BorderFactory.createLineBorder(Color.black));
loginName.setBounds(new Rectangle(100, 21, 131, 22));
jLabel24.setText("登录密码");
jLabel24.setBounds(new Rectangle(243, 21, 60, 22));
loginPass.setBorder(BorderFactory.createLineBorder(Color.black));
loginPass.setBounds(new Rectangle(306, 21, 131, 22));
initbutton.setBorder(BorderFactory.createEtchedBorder());
initbutton.setText("初始化");
initbutton.setBounds(new Rectangle(452, 21, 70, 22));
initbutton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(ActionEvent e) {
initbutton_actionPerformed(e);
}
});
stopbutton.setBorder(BorderFactory.createEtchedBorder());
stopbutton.setText("关闭监听");
stopbutton.setBounds(new Rectangle(532, 21, 70, 22));
stopbutton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(ActionEvent e) {
stopbutton_actionPerformed(e);
}
});
jScrollPane1.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
jScrollPane1.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
jScrollPane1.setBounds(new Rectangle(200, 253, 385, 122));
allRecvContent.setLineWrap(true);
jLabel1.setText("From");
jLabel1.setBounds(new Rectangle(395, 95, 37, 20));
jLabel18.setText("To");
jLabel18.setBounds(new Rectangle(516, 94, 27, 19));
calledFrom.setBorder(BorderFactory.createLineBorder(Color.black));
calledFrom.setText("0");
calledFrom.setBounds(new Rectangle(441, 93, 63, 22));
calledTo.setBorder(BorderFactory.createLineBorder(Color.black));
calledTo.setText("0");
calledTo.setBounds(new Rectangle(547, 92, 62, 25));
this.getContentPane().add(jLabel23, null);
this.getContentPane().add(loginName, null);
this.getContentPane().add(jLabel24, null);
this.getContentPane().add(loginPass, null);
this.getContentPane().add(service_Id, null);
this.getContentPane().add(jLabel2, null);
this.getContentPane().add(jLabel3, null);
this.getContentPane().add(fee_Terminal_Id, null);
this.getContentPane().add(msg_src, null);
this.getContentPane().add(ThreadNum, null);
this.getContentPane().add(jLabel8, null);
this.getContentPane().add(jLabel9, null);
this.getContentPane().add(threadSleepInterval, null);
this.getContentPane().add(threadRunInterval, null);
this.getContentPane().add(jLabel21, null);
this.getContentPane().add(QueryDate, null);
this.getContentPane().add(jLabel10, null);
this.getContentPane().add(jLabel11, null);
this.getContentPane().add(QueryCode, null);
this.getContentPane().add(QueryType, null);
this.getContentPane().add(jLabel12, null);
this.getContentPane().add(CancelMsgId, null);
this.getContentPane().add(logoutbutton, null);
this.getContentPane().add(jLabel13, null);
this.getContentPane().add(jLabel14, null);
this.getContentPane().add(jScrollPane1, null);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -