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

📄 smreceiver.java

📁 pk_Total - 相同msg_Id消息总条数 pk_Number - 相同msg_Id的消息序号 registered_Delivery - 是否要求返回状态报告 msg_Level - 信
💻 JAVA
字号:
package demo.smgpdemo;

import java.util.*;
import java.sql.*;
import java.io.*;
import com.huawei.smproxy.SMGPSMProxy;
import com.huawei.smproxy.comm.smgp.*;
import com.huawei.smproxy.comm.smgp.message.*;
import com.huawei.smproxy.util.*;

public class SMReceiver extends SMGPSMProxy
    implements Runnable{
  //系统配置信息
  private static Args arg = Env.getConfig().getArgs("SMGPConnect");

  private static Thread instance;

  public static Thread getInstance() {
    if (instance == null) {
      instance = new Thread(new SMReceiver());
    }
    return instance;
  }

  protected SMReceiver() {
    super(SMReceiver.arg);
  }

  /**
   * 连接终止的处理,由API使用者实现
   * 短信中心连接终止后,需要执行动作的接口
   */
  public void OnTerminate() {
    System.out.println("Connection have been breaked! ");
  }

  /**
   * 对SMGW主动下发的消息的处理接口。此例中只返回一个成功的响应。
   * @param msg 收到的消息。
   * @return 返回的相应消息。
   */
  public SMGPMessage onDeliver(final SMGPDeliverMessage msg) {

    if(msg.getIsReport() != 1){
      System.out.println("\n**************************Received a new message!***************************");
      System.out.println(msg.toString());
      System.out.println("The Sender is: " + msg.getSrcTermID());
      System.out.println("***************************End new message! **************************\n");
/*
      String[] rcvMobile = new String[1];
      rcvMobile[0] = msg.getSrcTermID();

      //生成一个CNGP回复消息
      System.out.print("Create new reply...\n");

      CNGPSubmitMessage reply = new CNGPSubmitMessage(
          "3001999995", //spid
          1, //subtype
          1, //needReport,
          3, //priority
          "+xkx", //serviceId
          "01", //FeeType
          0, //FeeUserType
          "000000", //FeeCode
          15, //msgFormat
          null,
          null, //定时发送时间(null:立即发送)
          "94005", //srcTermId
          "94005", //ChargeTermId
          1, //destTermIdCount
          rcvMobile, //destTermId
          16, //msgLength
          "你好,谢谢使用!", //msgmsgContent
          0 //protocolValue
          );

      if (send(reply)) {
        System.out.println("\nThe reply send OK!\n");
      }
      else {
        System.out.println("\nThe reply send Fail!\n");
      }
*/
    }else{
      System.out.println("\n++++++++++++++++++++++++++Received a new report!+++++++++++++++++++++++++");
      System.out.println(msg.toString());
      System.out.println("++++++++++++++++++++++++++End a new report!+++++++++++++++++++++++++\n");
    }
    return new SMGPDeliverRespMessage(msg.getMsgId(), 0);
  }

  /**
   * 封装父类的send()方法
   * 发送一条消息,完成真正的消息发送。
   * @param msg 待发送的消息。
   * @return true:发送成功。false:发送失败。
   */
  /*
  public boolean send(CNGPSubmitMessage msg) {
    if (msg == null) {
      return false;
    }
    CNGPSubmitRespMessage reportMsg = null;
    PreparedStatement stat = null;
    try {
      reportMsg = (CNGPSubmitRespMessage)super.send(msg);
      //System.out.println("发送状态:  " + reportMsg.toString());
    }
    catch (IOException ex) {
      ex.printStackTrace();
      return false;
    }catch (java.lang.NullPointerException e) {
      return false;
    }
    return true;
  }*/
  public boolean send(SMGPSubmitMessage msg) {
    if (msg == null) {
      return false;
    }
    try{
      super.send(msg);
    }catch(IOException e){
    }
    return true;
  }

  public void run(){
    while(true){
      try {
        Thread.sleep(500);
      }
      catch (Exception ex) {}
    }
  }

  //测试用主函数
  public static void main(String[] args) {
    //生成100个接收短信的手机号码

    //发送消息(发送多次)
    Thread receiver = SMReceiver.getInstance();
    receiver.start();
  }

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -