📄 constants.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 + -