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

📄 msghead.java~191~

📁 SGIP联通sms短信各个版本例子程序下载
💻 JAVA~191~
字号:
package SPAPI;/** * Title: SPAPI * Description: * Copyright:    Copyright (c) 2002 * Company: openet * @author  taixf * @version 1.0 */abstract class MsgHead{  private int TotalLen;    // 消息的总长度(字节)  private int CmdID;       // 命令ID  private int[] SeqNum;    // 序列号  public MsgHead(){    TotalLen = 20;    SeqNum = new int[3];  }  protected void 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;  }/*  protected void htonl(byte[] ba, int start, long value)  {    if (ba.length <= start + 3) return;    ba[start    ] = (byte)(value / 0x1000000);    ba[start + 1] = (byte)(value / 0x10000 % 0x100);    ba[start + 2] = (byte)(value / 0x100 % 0x100);    ba[start + 3] = (byte)(value % 0x100);  }//*/  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;    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]);  }  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 + -