一:发起连接
public int connect() {
int stat = CMPPPara.CMPP_ERROR;
try {
CMPPConnectMessage cMsg = new CMPPConnectMessage();
String time = CTime.getTime(CTime.MMDDhhmmss);
byte[] user = SYS.Ps("cmpp_icp_id").getBytes();
byte[] auth = SYS.Ps("cmpp_icp_auth").getBytes();
byte[] timeStamp = time.getBytes();
byte abyte2[] = new byte[100];
System.arraycopy(user, 0, abyte2, 0, user.length);
int k = user.length + 9;
System.arraycopy(auth, 0, abyte2, k, auth.length);
k += auth.length;
System.arraycopy(timeStamp, 0, abyte2, k, 10);
k += 10;
byte auths[] = new byte[k];
System.arraycopy(abyte2, 0, auths, 0, k);
MD5 md5 = new MD5();
byte md5Msg[] = md5.getMD5ofBytes(auths, auths.length);
stat = login(cMsg, md5Msg, time);
if (stat != CMPPPara.CMPP_SUCCESS) {
log.warn("登录CMPP网关发生错误,错误码:" + stat);
close();
MonitorPara.isLogin = false;
} else {
log.warn("登录CMPP网关成功");
MonitorPara.isLogin = true;
}
} catch (Exception ex) {
ex.printStackTrace();
stat = CMPPPara.CONNECT_INIT_ERROR;
log.warn("CMPP:connect()-" + ex.toString());
close();
MonitorPara.isLogin = false;
}
return stat;
}
二:登录验证
private int login(CMPPConnectMessage cMsg, byte[] auth, String time)
throws IOException, Exception {
int stat = CMPPPara.CMPP_ERROR;
int length = 0;
byte[] inMsg = new byte[100];
System.arraycopy(Tools.int2byte(cMsg.commandID), 0, inMsg, 4, 4);
System.arraycopy(Tools.int2byte(cMsg.sequenceID), 0, inMsg, 8, 4);
length = CMPPPara.HEAD_LEN;
S