📄 mycngpdemo.java
字号:
package demo.cngpdemo ;
/**
* <p>Title: </p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2002</p>
* <p>Company: </p>
* @author not attributable
* @version 1.0
*/
//不应使用到com.huawei.insa2包内的类
import com.huawei.smproxy.* ;
import com.huawei.smproxy.comm.cngp.CNGPConstant ;
import com.huawei.smproxy.comm.cngp.message.* ;
import com.huawei.smproxy.util.* ;
import demo.cmppdemo20.* ;
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 ;
import java.text.DateFormat ;
public class MyCngpDemo extends JFrame
{
private static Args args ;
/** 短信收发接口*/
private CNGPSMProxy smp = null ;
private boolean loginSmProxy = false ;//定义CNGP_Submit_Rep统计消息
int sendMsgSum = 0 ; //发送消息的总数
int sendSuccessMsgSum = 0 ; //成功发送消息的总数
int recvDeliverMsgSum = 0 ; //接收消息的总数
//定义CNGP_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送达失败的数量
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 jLabelValidTime = new JLabel () ;
JTextField validTimePostfix = new JTextField () ;
JLabel jLabelAtTime = new JLabel () ;
JTextField atTimePostfix = 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 QueryButton = new JToggleButton () ;
JLabel jLabel13 = new JLabel () ;
JTextField CancelMsgId = new JTextField () ;
JButton CancelButton = 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 loginButton = 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 MyCngpDemo ()
{
/**@todo 界面布局。*/
try
{
jbInit () ;
this.setSize ( new Dimension ( 600 , 450 ) ) ;
Rectangle r =
GraphicsEnvironment.getLocalGraphicsEnvironment ()
.getScreenDevices ()[0].getDefaultConfiguration ().getBounds () ;
this.setLocation ( ( int ) ( r.getWidth () - 600 ) / 2
, ( int ) ( r.getHeight () - 450 ) / 2 ) ;
//显示当前软件版本号
showStateMsg ( "current version: " + getVersion () ) ;
}
catch ( Exception e )
{
e.printStackTrace () ;
}
}
private static String version = "infoXV100R001.5D201" ;
private JLabel jLabel19 = new JLabel();
private JTextField dcs_value = new JTextField();
/**
* 获取软件版本号
*/
private static String getVersion ()
{
return version ;
}
/**
* 发送消息线程的线程体,负责发送消息。
*/
public void Task ()
{
sendMsgSum++ ;
//发送短消息请求,并对返回的消息做解析,生成统计数据
//对于出现的异常则交给SendReqThread去捕获处理.
try
{
ProcessSubmitRep ( smp.send ( getSubmitMsg () ) ) ;
Thread receiver = SMReceiver.getInstance();
receiver.start();
}
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 SendReqThread ( "test" , this , timeLong
, sleepInterval ).start () ;
}
}
/**
* 程序入口。
*/
public static void main ( String[] a ) throws Exception
{
new MyCngpDemo ().show () ;
args = new Cfg ( "config.xml" , false ).getArgs ( "CNGPConnect" ) ;
}
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 ( "13812345678" ) ;
fee_Terminal_Id.setBounds ( new Rectangle ( 305 , 61 , 131 , 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 ( "8888" ) ;
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.setText ( "13812345679" ) ;
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, 363, 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 , 76 , 22 ) ) ;
threadRunInterval.setBorder ( BorderFactory.createLineBorder ( Color.
black ) ) ;
threadRunInterval.setToolTipText ( "调用线程执行发送请求的时间长度" ) ;
threadRunInterval.setText ( "0" ) ;
threadRunInterval.setBounds ( new Rectangle ( 257 , 161 , 56 , 22 ) ) ;
jLabelValidTime.setText ( "有效时间" ) ;
jLabelValidTime.setBounds ( 177 , 191 , 88 , 22 ) ;
validTimePostfix.setBorder ( BorderFactory.createLineBorder ( Color.black ) ) ;
validTimePostfix.setToolTipText ( "+/-/R" ) ;
validTimePostfix.setText("");
validTimePostfix.setBounds (new Rectangle(228, 191, 142, 22) ) ;
jLabelAtTime.setText ( "发送时间" ) ;
jLabelAtTime.setBounds (new Rectangle(387, 191, 54, 22) ) ;
atTimePostfix.setBorder ( BorderFactory.createLineBorder ( Color.black ) ) ;
atTimePostfix.setToolTipText ( "+/-/R" ) ;
atTimePostfix.setBounds (new Rectangle(446, 191, 134, 22) ) ;
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 , 76 , 22 ) ) ;
threadSleepInterval.setBorder ( BorderFactory.createLineBorder ( Color.
black ) ) ;
threadSleepInterval.setText ( "0" ) ;
threadSleepInterval.setBounds ( new Rectangle ( 397 , 161 , 56 , 22 ) ) ;
jLabel22.setBorder ( BorderFactory.createEtchedBorder () ) ;
jLabel22.setText ( "运行状态" ) ;
jLabel22.setBounds ( new Rectangle ( 26 , 381 , 70 , 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.setText ( "SP" ) ;
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 ) ) ;
loginButton.setBorder ( BorderFactory.createEtchedBorder () ) ;
loginButton.setText ( "登录系统" ) ;
loginButton.setBounds ( new Rectangle ( 470 , 21 , 105 , 22 ) ) ;
loginButton.addActionListener ( new java.awt.event.ActionListener ()
{
public void actionPerformed ( ActionEvent e )
{
loginButton_actionPerformed ( e ) ;
}
} ) ;
CancelButton.setBorder ( BorderFactory.createEtchedBorder () ) ;
CancelButton.setToolTipText ( "" ) ;
CancelButton.setText ( "发送取消请求" ) ;
CancelButton.setBounds ( new Rectangle ( 470 , 61 , 105 , 22 ) ) ;
CancelButton.addActionListener ( new java.awt.event.ActionListener ()
{
public void actionPerformed ( ActionEvent e )
{
CancelButton_actionPerformed ( e ) ;
}
} ) ;
jScrollPane1.setHorizontalScrollBarPolicy ( JScrollPane.
HORIZONTAL_SCROLLBAR_NEVER ) ;
jScrollPane1.setVerticalScrollBarPolicy ( JScrollPane.
VERTICAL_SCROLLBAR_ALWAYS ) ;
jScrollPane1.setBounds ( new Rectangle ( 200 , 223 , 385 , 172 ) ) ;
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 ) ) ;
jLabel19.setText("DCS");
jLabel19.setBounds(new Rectangle(468, 127, 48, 13));
dcs_value.setText("0");
dcs_value.setBounds(new Rectangle(524, 124, 62, 21));
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 ( ThreadNum , null ) ;
this.getContentPane ().add ( jLabel9 , null ) ;
this.getContentPane ().add ( threadSleepInterval , null ) ;
this.getContentPane ().add ( threadRunInterval , null ) ;
this.getContentPane ().add ( jLabel8 , null ) ;
this.getContentPane ().add ( jLabel21 , null ) ;
this.getContentPane ().add ( QueryDate , null ) ;
this.getContentPane ().add ( CancelButton , null ) ;
this.getContentPane ().add ( jLabelValidTime , null ) ;
this.getContentPane ().add ( validTimePostfix , null ) ;
this.getContentPane ().add ( jLabel14 , null ) ;
this.getContentPane ().add ( jScrollPane1 , null ) ;
jScrollPane1.getViewport ().add ( allRecvContent , null ) ;
this.getContentPane ().add ( RecvMsgSum , null ) ;
this.getContentPane ().add ( jLabel15 , null ) ;
this.getContentPane ().add ( jLabel16 , null ) ;
this.getContentPane ().add ( SuccessSendSum , null ) ;
this.getContentPane ().add ( SendMsgSum , null ) ;
this.getContentPane ().add ( jLabel17 , null ) ;
this.getContentPane ().add ( myProxyState , null ) ;
this.getContentPane ().add ( jLabel22 , null ) ;
this.getContentPane ().add ( dest_Terminal_Id , null ) ;
this.getContentPane ().add ( src_Terminal_Id , null ) ;
this.getContentPane ().add ( jLabel6 , null ) ;
this.getContentPane ().add ( jLabel5 , null ) ;
this.getContentPane ().add ( msg_Content , null ) ;
this.getContentPane ().add ( jLabel7 , null ) ;
this.getContentPane ().add ( SendButton , null ) ;
this.getContentPane ().add ( jLabel4 , null ) ;
this.getContentPane ().add ( loginButton , null ) ;
this.getContentPane ().add ( jLabel1 , null ) ;
this.getContentPane ().add ( calledFrom , null ) ;
this.getContentPane ().add ( jLabel18 , null ) ;
this.getContentPane ().add ( calledTo , null ) ;
this.getContentPane().add(atTimePostfix, null);
this.getContentPane().add(jLabelAtTime, null);
this.getContentPane().add(jLabel19, null);
this.getContentPane().add(dcs_value, null);
}
/**
* 处理用户发送短消息的测试请求.
*/
void SendButton_actionPerformed ( ActionEvent e )
{
int threadNum = 0 ;
int runInterval = 0 ;
int sleepInterval = 0 ;
//如果没有成成功登录
if ( !loginSmProxy )
{
showStateMsg ( "系统没有成功登录" ) ;
return ;
}
try
{
threadNum = Integer.parseInt ( ThreadNum.getText ().trim () ) ;
runInterval = Integer.parseInt ( threadRunInterval.getText ().trim () ) ;
sleepInterval = Integer.parseInt ( threadSleepInterval.getText ().
trim () ) ;
}
catch ( Exception ex ) //such as 用户没有输入线程数或者是其他非法字符的时候
{ //我们只发送短消息,而不启动线程
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 ;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -