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

📄 cmpp_connect.java

📁 CMPP3.0移动短信程序java源程序
💻 JAVA
字号:
package com.sxforever.protocol.cmpp30;
import com.sxforever.util.*;
import com.sxforever.structure.*;
/**
 * <p>Title: sxforever</p>
 *
 * <p>Description: </p>
 *
 * <p>Copyright: Copyright (c) 2007</p>
 *
 * <p>Company: Hengyuan_COM</p>
 *
 * @author shanying
 * @version 1.0
 */
public class CMPP_CONNECT implements java.io.Serializable {
    private int Total_Length; //消息总长度(含消息头及消息体)
    private int Command_Id; //命令或响应类型
    private int Sequence_Id = 0; //消息流水号,顺序累加,步长为1,循环使用(一对请求和应答消息的流水号必须相同)
    public static int estate=0;
    Command_Id cmd=new Command_Id();
    public CMPP_CONNECT() {
        try {
            jbInit();
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }
    private int setSequence_Id(){
        return this.Sequence_Id=Sequence_Id++;
    }
    private byte[] getMD5(String mSource_Addr,
                         String mSecret, int sTimestamp) {
        ProtocolBuffer pb = ProtocolBuffer.create(6 + 9 + 4 + 4);
        pb.appendBytes(mSource_Addr.getBytes());
        pb.appendBynary0(9);
        pb.appendBytes(mSecret.getBytes());
        pb.appendInt(sTimestamp);
        MD5 md5 = new MD5();
        byte[] bs = pb.toBytes();
        byte[] auth = md5.getMD5ofBytes(bs, bs.length);
        return auth;
    }
    public byte[] set_conn_info(String mSource_Addr,
                                String mSecret) {//连接
        ProtocolBuffer pb = ProtocolBuffer.create(39);
        pb.appendBytes(setMessHead(39,cmd.Set_COMMAND_CMPP_CONNECT()));
        pb.appendBytes(mSource_Addr.getBytes());
        int Timestamp = Integer.parseInt(TypesTools.getNowDate10());
        byte Version=0x30;
        pb.appendBytes(getMD5(mSource_Addr, mSecret, Timestamp));
        pb.appendByte(Version);
        pb.appendInt(Timestamp);
        return pb.toBytes();
    }
    public byte[] set_sunmit(Submit submit)throws Exception{
        int a=0;
        byte[] b=submit.Str_MSG.getBytes("GB2312");
        a = b.length;
        ProtocolBuffer pb=ProtocolBuffer.create(151+submit.By_USERCOUNT*32+a+12);
        pb.appendBytes(setMessHead(151+submit.By_USERCOUNT*32+a+12,cmd.Set_COMMAND_CMPP_SUBMIT()));
        pb.appendAsciiO(8);
        pb.appendByte(submit.By_PKTOTAL);
        pb.appendByte(submit.By_PKNUMBER);
        pb.appendByte(submit.By_REPORTFLAG);
        pb.appendByte(submit.By_MSGLEVEL);
        pb.appendString(submit.Str_SERVICEID,10);
        pb.appendByte(submit.By_FEEUSERTYPE);
        //pb.appendString(submit.Str_FEENUM,32);
        String[] Dest_terminal = submit.Str_FEENUM.split(",");
        for (int i = 0; i < Dest_terminal.length; i++){
            if(Dest_terminal[i].startsWith("+86"))
                pb.appendString(Dest_terminal[i],32);
            else
                pb.appendString("+86"+Dest_terminal[i],32);
        }
        pb.appendByte(submit.By_FEENUMTYPE);
        pb.appendAsciiO(2);
        pb.appendByte(submit.By_MSGFMT);
        pb.appendString(submit.Str_CORPID,6);
        pb.appendString("0"+submit.By_FEETYPE,2);
        pb.appendString(submit.Str_FEE,6);
        pb.appendString(submit.Str_VALIDTIME,17);
        pb.appendString(submit.Str_ATTIME,17);
        pb.appendString(submit.Str_SPNUM,21);
        pb.appendByte(submit.By_USERCOUNT);
        //pb.appendString(submit.Str_USERNUM,submit.By_USERCOUNT*32);
        Dest_terminal = submit.Str_USERNUM.split(",");
        for (int i = 0; i < Dest_terminal.length; i++){
            if(Dest_terminal[i].startsWith("+86"))
                pb.appendString(Dest_terminal[i],32);
            else
                pb.appendString("+86"+Dest_terminal[i],32);
        }
        pb.appendByte(submit.By_USERNUMTYPE);
        pb.appendByte((byte)submit.Int_MSGLENGTH);
        pb.appendBytes(b);
        pb.appendString(submit.Str_LINKID,20);
        submit.Str_MSGID=Sequence_Id+"";
        //存入数据库
        return pb.toBytes();
    }
    public byte[] set_sunmit(byte Pk_total, byte Pk_number,
                           byte Registered_Delivery, byte Msg_level,
                           String Service_Id, byte Fee_UserType,
                           String Fee_terminal_ID, byte Fee_terminal_type,
                           byte Msg_Fmt, String Msg_src, String FeeType,
                           String FeeCode, String Valli_Time, String At_time,
                           String Src_Id, byte DestUsr_tl,
                           String Dest_terminal_Id, byte Dest_terminal_type,
                           byte Msg_Length, String Msg_Content, String LinkID)throws Exception{//发送信息
      int a;
      byte[] b=Msg_Content.getBytes("gb2312");
      a=b.length;
        ProtocolBuffer pb=ProtocolBuffer.create(151+DestUsr_tl*32+a+12);
        pb.appendBytes(setMessHead(151+DestUsr_tl*32+a+12,cmd.Set_COMMAND_CMPP_SUBMIT()));
        pb.appendAsciiO(8);
        pb.appendByte(Pk_total);
        pb.appendByte(Pk_number);
        pb.appendByte(Registered_Delivery);
        pb.appendByte(Msg_level);
        pb.appendString(Service_Id);
        pb.appendByte(Fee_UserType);
        pb.appendString(Fee_terminal_ID,32);
        pb.appendByte(Fee_terminal_type);
        pb.appendAsciiO(2);
        pb.appendByte(Msg_Fmt);
        pb.appendString(Msg_src);
        pb.appendString(FeeType);
        pb.appendString(FeeCode);
        pb.appendString(Valli_Time);
        pb.appendString(At_time);
        pb.appendString(Src_Id);
        pb.appendByte(Msg_level);
        String[] Dest_terminal = Dest_terminal_Id.split(",");
        for (int i = 0; i < Dest_terminal.length; i++){
            if(Dest_terminal[i].startsWith("+86"))
                pb.appendString(Dest_terminal[i],32);
            else
                pb.appendString("+86"+Dest_terminal[i],32);
        }
        pb.appendByte(Dest_terminal_type);
        pb.appendByte(Msg_Length);
        pb.appendBytes(b);
        pb.appendString(LinkID);
        return pb.toBytes();
    }

    public byte[] setMessHead(int length, int mCommand_Id) {//包头
        ProtocolBuffer pb = ProtocolBuffer.create(12);
        pb.appendInt(length);
        pb.appendInt(mCommand_Id);
        //this.Sequence_Id++;
        pb.appendInt(setSequence_Id());
        estate++;
        return pb.toBytes();
    }
    public byte[] setMessHead(int length, int mCommand_Id,byte[] seq_id) {//包头
        ProtocolBuffer pb = ProtocolBuffer.create(12);
        pb.appendInt(length);
        pb.appendInt(mCommand_Id);
        //this.Sequence_Id++;
        pb.appendBytes(seq_id);
        estate++;
        return pb.toBytes();
    }
    public byte[] set_Deliver_resp(MDELIVER dlv) {//消息回应
        ProtocolBuffer pb = ProtocolBuffer.create(24);
        pb.appendBytes(setMessHead(24,cmd.Set_COMMAND_CMPP_DELIVER_RESP(),dlv.Seq_ID));
        pb.appendBytes(dlv.By_MSGID);
        pb.appendInt(0);
        return pb.toBytes();
    }
    public byte[] set_Deliver_resp(byte[] seq_id,byte[] Msg_Id, int Result) {//消息回应
        ProtocolBuffer pb = ProtocolBuffer.create(24);
        pb.appendBytes(setMessHead(24,cmd.Set_COMMAND_CMPP_DELIVER_RESP(),seq_id));
        pb.appendBytes(Msg_Id);
        pb.appendInt(Result);
        return pb.toBytes();
    }
    public byte[] set_Query(String Time, byte Query_type, String Query_Code) {//发送查询
        ProtocolBuffer pb = ProtocolBuffer.create(39);
        pb.appendBytes(setMessHead(39,cmd.Set_COMMAND_CMPP_QUERY()));
        pb.appendString(Time,8);
        pb.appendByte(Query_type);
        pb.appendString(Query_Code,10);
        pb.appendAsciiO(8);
        return pb.toBytes();
    }
    public byte[] set_Cancet(byte[] Msg_Id) {//发送删除
        ProtocolBuffer pb = ProtocolBuffer.create(20);
        pb.appendBytes(setMessHead(20,cmd.Set_COMMAND_CMPP_CANCEL()));
        pb.appendBytes(Msg_Id);
        return pb.toBytes();
    }
    public byte[] set_Active_Test() {//链路检测
        ProtocolBuffer pb = ProtocolBuffer.create(12);
        pb.appendBytes(setMessHead(12,cmd.Set_COMMAND_CMPP_ACTIVE_TEST()));
        return pb.toBytes();
    }
    private void jbInit() throws Exception {
    }
}

⌨️ 快捷键说明

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