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

📄 constants.java

📁 本人为友邦公司做的模拟网关源代码
💻 JAVA
字号:
package smgpgw;

import java.util.*;
import java.io.*;
import java.security.*;

public class Constants {

  public static int SrcMobile = 11111111;
  public static String publicKey = "123456";

  public static int TotalMoney = 0;

  public static int Submit_Nu = 0;

  public static int nStartNumber = 0;
  public static int nEndNumber = 0;
  public static boolean SEND_FLAG = true;
  public static boolean SMSC_DEBUG = true;
  public static boolean DISPLAY_ACTIVE = false;
  public static boolean DISPLAY_BINARY = false;
  public static boolean DISPLAY_MSG = false;

  public static Vector vSmpp = new Vector(300, 300);
  public static Vector vSmppResp = new Vector(300, 300);
  public static int nSequence = 0;

  //public static int nMsgMode = 1;
  public static int nMsgTime = 0;
  public static int nMsgNumber = 0;
  public static int nTimeInterval = 0;
  public static String strDestAddr = "";
  public static int nSendMode = Constants.NUMBER;
  public static int nMsgType = SmscConstants.SMPP_DELIVER_SM;

  public static SmscShortMsg smscMsg = new SmscShortMsg();

  public static String CONNECTION_URL =
      "jdbc:oracle:thin:@128.128.10.200:1521:ora8";
  public static String DB_USER = "smgway";
  public static String DB_PASS = "smgway";
  public static String DB_DRIVER = "oracle.jdbc.driver.OracleDriver";
  public static String DB_ResendInterval = "20";

  public static int SvrPort = 8890;
  public static final int WAIT_FOR_DOWNWARD_INTERVAL = 100; //in milliseconds
  public static final int MAX_UNSEND_MSG_COUNT = 1000;

  public static int MBCP_MAX_MSG_LEN = 5120;
  public static int MBCPRCVSOCK_TIMEOUT = 20000;

  public static final int NUMBER = 0;
  public static final int TIME = 1;

  public static final String WORKING = "working";
  public static final String NOTCONNECTED = "not connected";
  public static final String NOTLOGIN = "not login";
  public static final String NOTACTIVE = "not active";
  public static final String Receiver = " Receiver";
  public static final String Transmitter = " Transmitter";

  public static final int ERROR_SOCKET = -1;
  public static final int ERROR_INTERRUPT = -2;
  public static final int ERROR_DATA = -3;
  public static final int ERROR_OTHER = -4;

  public Constants() {}

  /**
   * 把一个字节转化为16进制字符串
   * @param byte0 要转化的字节
   * @return 16进制字符串
   */
  public static String byteToHexString(byte byte0) {
    StringBuffer s = new StringBuffer();
    s.append(Character.forDigit(byte0 >> 4 & 0xf, 16));
    s.append(Character.forDigit(byte0 & 0xf, 16));
    return new String(s);
  }

  /**
   * 把一个整型转化为16进制字符串
   * @param i 要转化的整型
   * @return 16进制字符串
   */
  public static String intToHexString(int i) {
    StringBuffer s = new StringBuffer();
    for (int j = 0; j < 8; j++) {
      s.append(Character.forDigit(i & 0xf, 16));
      i >>= 4;
    }

//		String s1 = "";
//		for(int k = 8; k > 0; k--)
//			s1 = s1 + s.charAt(k - 1);

    return new String(s.reverse());
  }

  /**
   * 把一个字节数组转化为16进制字符串
   * @param abyte0 要转化的字节数组
   * @return 16进制字符串
   */
  public static String byteToHexString(byte abyte0[]) {
    StringBuffer s = new StringBuffer();
    for (int i = 0; i < abyte0.length; i++)
      s.append(byteToHexString(abyte0[i]));

    return new String(s);
  }

  public void initSequence() {
    String strTime;
    strTime = Constants.formatDateTime();
    strTime = strTime.substring(8) + "0000";
    Constants.nSequence = Integer.parseInt(strTime);
  }

  public static int getSequence() {
    int nCurrentSeq = 0;

    nCurrentSeq = Constants.nSequence;
    Constants.nSequence += 1;
    Constants.nSequence = Constants.nSequence % (0x7fffffff);
    return nCurrentSeq;
  }

  public static void threadSleep(int miniSec) {
    try {
      Thread.sleep(miniSec);
    }
    catch (InterruptedException e) {
      //Log.error("sleep interrupt ."+e);
    }
  }

  public static String formatDateTime() {
    Calendar now = Calendar.getInstance();
    String year = Integer.toString(now.get(Calendar.YEAR));
    String mon = Integer.toString(now.get(Calendar.MONTH) + 1);
    String day = Integer.toString(now.get(Calendar.DAY_OF_MONTH));
    String hour = Integer.toString(now.get(Calendar.HOUR_OF_DAY));
    String min = Integer.toString(now.get(Calendar.MINUTE));
    String sec = Integer.toString(now.get(Calendar.SECOND));

    mon = (mon.length() == 1) ? "0" + mon : mon;
    day = (day.length() == 1) ? "0" + day : day;
    hour = (hour.length() == 1) ? "0" + hour : hour;
    min = (min.length() == 1) ? "0" + min : min;
    sec = (sec.length() == 1) ? "0" + sec : sec;
    return (year + mon + day + hour + min + sec);
  }

  //部分参数从文件中获取
  public static boolean loadMsgData() {
    String userHome, cfgFile, strText;

    Constants.smscMsg.msgServiceType = "";
    Constants.smscMsg.msgDestAddressTon = 2;
    Constants.smscMsg.msgSourceAddressNpi = 8;
    Constants.smscMsg.msgSourceAddress = "13907310001";
    Constants.smscMsg.msgDestAddressTon = 2;
    Constants.smscMsg.msgDestAddressNpi = 8;
    Constants.smscMsg.msgDestAddress = "1200";
    Constants.smscMsg.msgEsmClass = 0;
    Constants.smscMsg.msgProtocolID = 0;
    Constants.smscMsg.msgPriorityFlag = 0;
    Constants.smscMsg.msgScheduleDeliveryTime = "";
    Constants.smscMsg.msgValidityPeroid = "";
    Constants.smscMsg.msgRegisterdDeliveryFlag = 0;
    Constants.smscMsg.msgReplaceIfPresentFlag = 0;
    Constants.smscMsg.msgDataCoding = 0;
    Constants.smscMsg.msgSmDefaultMsgID = 0;
    Constants.smscMsg.msgSmLength = 22;
    Constants.smscMsg.msgShortMsgText = "d 111111 1111111111111";

    try {
      userHome = System.getProperties().getProperty("CONFIG_PATH");
      if (userHome == null)
        userHome = "";
      else
        userHome = userHome + File.separator;

      cfgFile = userHome + "cfg" + File.separator + "MsgData";

      InputStream is = new FileInputStream(cfgFile);
      Properties pt = new Properties();
      pt.load(is);

      Constants.smscMsg.msgServiceType = pt.getProperty("Service_type", "1");

      strText = pt.getProperty("Source_address_ton", "2");
      Constants.smscMsg.msgSourceAddressTon = (byte) Integer.parseInt(strText);
      strText = pt.getProperty("Source_address_npi", "8");
      Constants.smscMsg.msgSourceAddressNpi = (byte) Integer.parseInt(strText);
      Constants.smscMsg.msgSourceAddress = pt.getProperty("Source_address",
          "13907310001");

      strText = pt.getProperty("Dest_address_ton", "2");
      Constants.smscMsg.msgDestAddressTon = (byte) Integer.parseInt(strText);
      strText = pt.getProperty("Dest_address npi", "8");
      Constants.smscMsg.msgDestAddressNpi = (byte) Integer.parseInt(strText);
      Constants.smscMsg.msgDestAddress = pt.getProperty("Dest_address", "1200");

      strText = pt.getProperty("Esm_class", "0");
      Constants.smscMsg.msgEsmClass = (byte) Integer.parseInt(strText);
      strText = pt.getProperty("Protocol_ID", "0");
      Constants.smscMsg.msgProtocolID = (byte) Integer.parseInt(strText);
      strText = pt.getProperty("Priority_flag", "0");
      Constants.smscMsg.msgPriorityFlag = (byte) Integer.parseInt(strText);
      Constants.smscMsg.msgScheduleDeliveryTime = pt.getProperty(
          "Schedule_delivery_time", "");
      Constants.smscMsg.msgValidityPeroid = pt.getProperty("Validity_peroid",
          "");

      strText = pt.getProperty("Registered_delivery_flag", "0");
      Constants.smscMsg.msgRegisterdDeliveryFlag = (byte) Integer.parseInt(
          strText);
      strText = pt.getProperty("Replace_if_present_flag", "0");
      Constants.smscMsg.msgReplaceIfPresentFlag = (byte) Integer.parseInt(
          strText);
      strText = pt.getProperty("Data_coding", "0");
      Constants.smscMsg.msgDataCoding = (byte) Integer.parseInt(strText);
      strText = pt.getProperty("SM_default_msg_id", "0");
      Constants.smscMsg.msgSmDefaultMsgID = (byte) Integer.parseInt(strText);
      /**
       * modified by me(yzx) at 2004-03-03:修正原来笼统的转换
       */
      if (Constants.smscMsg.msgDataCoding == 15) {
        Constants.smscMsg.msgShortMsgText = new String(pt.getProperty(
            "Short_message_text",
            "d 222222 1111111111111").getBytes("iso-8859-1"), "gb2312");
      }
      else if (Constants.smscMsg.msgDataCoding == 8) {
        Constants.smscMsg.msgShortMsgText = new String(pt.getProperty(
            "Short_message_text",
            "d 222222 1111111111111").getBytes("iso-8859-1"), "UTF-16BE");
      }
      else {
        Constants.smscMsg.msgShortMsgText = pt.getProperty("Short_message_text",
            "d 222222 1111111111111");
      }
      //System.out.println("bbbbbbbbbbbbbbbbbbbbbbbbbbbbb:"+Constants.smscMsg.msgShortMsgText);
      Constants.smscMsg.msgSmLength = (byte) Integer.parseInt(pt.getProperty(
          "Short_message_length", "0"));
      is.close();
      return true;
    }
    catch (Exception e) {
      SMSCFrame.RecvArea.append("Load config file failed .\n");
      return false;
    }
  }

  public static byte[] generateRespAuthCode(byte btStatus, String PublicKey,
                                            byte[] btAuthCode) {
    int nLength = 0;
    boolean bReturn = false;
    byte[] btKey = null, btTemp = null, btRespAuthCode = null;

    try {
      //验证MD5: MD5(status + Source AuthCode + ShareKey)
      btKey = PublicKey.getBytes();
      nLength = 1 + btAuthCode.length + btKey.length;
      btTemp = new byte[nLength];

      btTemp[0] = btStatus;
      System.arraycopy(btAuthCode, 0, btTemp, 1, btAuthCode.length);
      System.arraycopy(btKey, 0, btTemp, 1 + btAuthCode.length, btKey.length);
      btRespAuthCode = computeDigest(btTemp);
    }
    catch (Exception e) {
      btRespAuthCode = null;
    }

    return btRespAuthCode;
  }

  /**
   * 公用方法
   * 用MD5算法加密字节数组
   */
  public static byte[] computeDigest(byte[] btSource) {
    byte[] btDest = null;
    try {
      MessageDigest msgDigest = MessageDigest.getInstance("MD5");
      msgDigest.reset();
      msgDigest.update(btSource);
      btDest = msgDigest.digest(); //得到摘要
    }
    catch (Exception e) {
      e.printStackTrace();
    }
    return btDest;
  }

}

class method {

  public static String getToday() {

    Calendar now = Calendar.getInstance();
    String yyyy = String.valueOf(now.get(java.util.Calendar.YEAR));
    String mm = totwo(String.valueOf(now.get(Calendar.MONTH) + 1));
    String dd = totwo(String.valueOf(now.get(Calendar.DAY_OF_MONTH)));
    String yy = totwo(yyyy.substring(2));
    return yy + mm + dd;

  }

  public static String totwo(String s) {
    if (s.length() < 2) {
      s = "0" + s;
      return s;
    }
    return s;
  }

  public static String dateview() {
    Calendar now = Calendar.getInstance();
    String yyyy = String.valueOf(now.get(java.util.Calendar.YEAR));
    String mm = String.valueOf(now.get(Calendar.MONTH) + 1);
    String dd = String.valueOf(now.get(Calendar.DAY_OF_MONTH));
    String hh = String.valueOf(now.get(Calendar.HOUR_OF_DAY) + 1);
    String ff = String.valueOf(now.get(Calendar.MINUTE));
    String ss = String.valueOf(now.get(Calendar.SECOND));
    String haomiao = String.valueOf(now.get(Calendar.MILLISECOND));
    mm = (1 == mm.length()) ? ("0" + mm) : mm;
    dd = (1 == dd.length()) ? ("0" + dd) : dd;
    hh = (1 == hh.length()) ? ("0" + hh) : hh;
    ff = (1 == ff.length()) ? ("0" + ff) : ff;
    ss = (1 == ss.length()) ? ("0" + ss) : ss;
    String mmddhhss = yyyy + mm + dd + hh + ff + ss;
    return mmddhhss;
  }



}

⌨️ 快捷键说明

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