📄 msghead.java
字号:
package com.wireless.sms.gwif.sgip12;
//import com.wireless.sms.pub.mq.*;
/**
* <p>Title: WVAS-PLATFORM-SMS</p>
* <p>Description: 无线增值业务平台-----短信接口机</p>
* <p>Copyright: Copyright (c) 2003</p>
* <p>Company: moon</p>
* @author tech team
* @version 1.0
*/
abstract class MsgHead{
private int TotalLen; // 消息的总长度(字节)
private int CmdID; // 命令ID
private int[] SeqNum; // 序列号
public MsgHead(){
TotalLen = 20;
SeqNum = new int[3];
}
public MsgHead(byte[] ba){
TotalLen = getUINT4(ba, 0);
CmdID = getUINT4(ba, 4);
SeqNum[0] = getUINT4(ba, 8);
SeqNum[1] = getUINT4(ba, 12);
SeqNum[2] = getUINT4(ba, 16);
}
static public int getCmdID(byte[] ba)
{
if (ba.length <= 7) return 0;
return getUINT4(ba, 4);
}
static protected int getUINT4(byte[] ba, int start)
{
if (ba.length <= start + 3) return 0;
int r = 0;
r |= 0x00FF & ba[start];
r = r<<8;
r |= 0x00FF & ba[start + 1];
r = r<<8;
r |= 0x00FF & ba[start + 2];
r = r<<8;
r |= 0x00FF & ba[start + 3];
return r;
}
static protected void setUINT4(byte[] ba, int start, int value)
{
if (ba.length <= start + 3) return;
ba[start ] = (byte)(value >> 24 & 0xFF);
ba[start + 1] = (byte)(value >> 16 & 0xFF);
ba[start + 2] = (byte)(value >> 8 & 0xFF);
ba[start + 3] = (byte)(value & 0xFF);
}
static protected String byte2str(byte[] ba, int start, int len)
{
// if (ba.length <= start + len - 1) return null;
if (ba.length <= start + len - 1) return "";
String r = new String();
for (int i = 0; i < len; i++)
{
if (ba[start + i] == '\0') break;
r += (char)ba[start + i];
}
return r;
}
static protected void str2byte(byte[] ba, String s, int start, int len)
{
if (ba.length <= start + len - 1) return;
if (s.length() < len)
{
for(int i = 0; i < s.length(); i++)
{
ba[start + i] = (byte)s.charAt(i);
}
for(int i = s.length(); i < len; i++)
{
ba[start + i] = 0;
}
}
else
{
for(int i = 0; i < len; i++)
{
ba[start + i] = (byte)s.charAt(i);
}
}
}
protected void setHead(byte[] ba){
TotalLen = getUINT4(ba, 0);
CmdID = getUINT4(ba, 4);
SeqNum[0] = getUINT4(ba, 8);
SeqNum[1] = getUINT4(ba, 12);
SeqNum[2] = getUINT4(ba, 16);
}
protected int headFill(byte[] ba)
{
setUINT4(ba, 0, TotalLen);
setUINT4(ba, 4, CmdID);
setUINT4(ba, 8, SeqNum[0]);
setUINT4(ba,12, SeqNum[1]);
setUINT4(ba,16, SeqNum[2]);
return 0;
}
public byte[] getBytes()
{
byte[] ba = new byte[20];
headFill(ba);
return ba;
}
public void printHead()
{
System.out.print("TotalLen=" + TotalLen);
System.out.print(" CmdID=" + Integer.toHexString(CmdID));
System.out.print(" SeqNum[0..2]=" + SeqNum[0]);
System.out.print(", " + SeqNum[1]);
System.out.print(", " + SeqNum[2]);
System.out.print("\n");
}
public String toString()
{
String str = " TotalLen =" + TotalLen + "\n" +
" CmdID =" + Integer.toHexString(CmdID) + "\n" +
" SeqNum[0] =" + SeqNum[0] + "\n" +
" SeqNum[1] =" + SeqNum[1] + "\n" +
" SeqNum[2] =" + SeqNum[2];
return str;
}
public int[] getSeqNum() {
return SeqNum;
}
public void setSeqNum(int[] SeqNum) {
this.SeqNum = SeqNum;
}
public int getTotalLen() {
return TotalLen;
}
public void setTotalLen(int TotalLen) {
this.TotalLen = TotalLen;
}
public int getCmdID() {
return CmdID;
}
public void setCmdID(int CmdID) {
this.CmdID = CmdID;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -