⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mycngpdemo.java

📁 pk_Total - 相同msg_Id消息总条数 pk_Number - 相同msg_Id的消息序号 registered_Delivery - 是否要求返回状态报告 msg_Level - 信
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
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 + -