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

📄 mycngpdemo1.java

📁 pk_Total - 相同msg_Id消息总条数 pk_Number - 相同msg_Id的消息序号 registered_Delivery - 是否要求返回状态报告 msg_Level - 信
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
     {                    //我们只发送短消息,而不启动线程
        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 + -