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

📄 msgdeliver.java

📁 中国联通短信通信协议
💻 JAVA
字号:
package com.wireless.sms.gwif.sgip12;

import java.io.*;
import com.wireless.sms.pub.util.Base64;
//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
 */

public class MsgDeliver extends MsgHead {

    private String UserNumber;
    private String SPNumber;
    private int TP_pid;
    private int TP_udhi;
    private int MessageCoding;
    private int MessageLength;
    private String MessageContent;
    private String Reserve;

    public MsgDeliver(int SeqNum[], String UserNumber, String SPNumber, int TP_pid, int TP_udhi, int MessageCoding,
        String MessageContent,
        String Reserve) {
        setTotalLen(77 + MessageContent.getBytes().length);
        setCmdID(4);
        setSeqNum(SeqNum);
        this.UserNumber = UserNumber;
        this.SPNumber = SPNumber;
        this.TP_pid = TP_pid;
        this.TP_udhi = TP_udhi;
        this.MessageCoding = MessageCoding;
        MessageLength = MessageContent.getBytes().length;
        this.MessageContent = MessageContent;
        this.Reserve = Reserve;
    }

    public MsgDeliver(byte ba[]) {
        setHead(ba);
        UserNumber = MsgHead.byte2str(ba, 20, 21);
        SPNumber = MsgHead.byte2str(ba, 41, 21);
        TP_pid = ba[62];
        TP_udhi = ba[63];
        MessageCoding = ba[64];
        MessageLength = MsgHead.getUINT4(ba, 65);
        if (MessageCoding == 8) {
            try {
                MessageContent = new String(ba, 69, MessageLength, "iso-10646-ucs-2");
                //MessageContent = new String(ba, 69, MessageLength, "UnicodeBigUnmarked");
            } catch (UnsupportedEncodingException ex) {
                ex.printStackTrace();
            }
        } else
        if (MessageCoding == 15) {
            try {
                MessageContent = new String(ba, 69, MessageLength, "GBK");
            } catch (UnsupportedEncodingException ex1) {
                ex1.printStackTrace();
            }
        } else {
            MessageContent = MsgHead.byte2str(ba, 69, MessageLength);
        }

        Reserve = MsgHead.byte2str(ba, 69 + MessageLength, 8);
    }

    public void print() {
        System.out.print("/");
        printHead();
        System.out.print("\n");
        System.out.print(" UserNumber=" + UserNumber);
        System.out.print(" SPNumber=\"" + SPNumber + "\"");
        System.out.print(" TP_pid=\"" + TP_pid + "\"");
        System.out.print(" TP_udhi=\"" + TP_udhi + "\"\n");
        System.out.print("\\MessageCoding=\"" + MessageCoding + "\"");
        System.out.print(" MessageLength=\"" + MessageLength + "\"");
        System.out.print(" MessageContent=\"" + MessageContent + "\"");
        System.out.print(" Reserve=\"" + Reserve + "\"");
        System.out.print("\n");
    }

    public String getUserNumber() {
        return UserNumber;
    }

    public void setUserNumber(String UserNumber) {
        this.UserNumber = UserNumber;
    }

    public int getTP_udhi() {
        return TP_udhi;
    }

    public void setTP_udhi(int TP_udhi) {
        this.TP_udhi = TP_udhi;
    }

    public int getTP_pid() {
        return TP_pid;
    }

    public void setTP_pid(int TP_pid) {
        this.TP_pid = TP_pid;
    }

    public String getSPNumber() {
        return SPNumber;
    }

    public void setSPNumber(String SPNumber) {
        this.SPNumber = SPNumber;
    }

    public String getReserve() {
        return Reserve;
    }

    public void setReserve(String Reserve) {
        this.Reserve = Reserve;
    }

    public String getMessageContent() {
        return MessageContent;
    }

    public void setMessageContent(String MessageContent) {
        this.MessageContent = MessageContent;
        MessageLength = MessageContent.length();
    }

    public int getMessageCoding() {
        return MessageCoding;
    }

    public void setMessageCoding(int MessageCoding) {
        this.MessageCoding = MessageCoding;
    }

    //the following is added by gaom
    public byte[] getBytes() {
        setTotalLen(20 + 57 + MessageLength);
        byte[] r = new byte[getTotalLen()];
        headFill(r);
        str2byte(r, UserNumber, 20, 21);
        str2byte(r, SPNumber, 41, 21);
        int idx = 62;
        r[idx] = (byte)TP_pid;
        r[idx + 1] = (byte)TP_udhi;
        r[idx + 2] = (byte)MessageCoding;
        setUINT4(r, idx + 3, MessageLength);
        idx = idx + 7;
        byte[] sMsgContent = null;
        //添加编码
        try {
            if (MessageCoding == 8)
                sMsgContent = MessageContent.getBytes("iso-10646-ucs-2");
            else if (MessageCoding == 15)
                sMsgContent = MessageContent.getBytes("GBK");
            else if (MessageCoding == 4 || MessageCoding == 3)
                sMsgContent = Base64.decode(MessageContent.getBytes("iso-8859-1"));
            else
                sMsgContent = MessageContent.getBytes("iso-8859-1");
        } catch (Exception ex) {
            ex.printStackTrace();
        }
        System.arraycopy(sMsgContent, 0, r, idx, sMsgContent.length);
        str2byte(r, Reserve, idx + MessageLength, 8);

        return r;
    }

}

⌨️ 快捷键说明

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