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

📄 xsms.java~14~

📁 cnc网通小灵通网关接口源码
💻 JAVA~14~
📖 第 1 页 / 共 3 页
字号:
            ParseXml.xmlConfig(removeBr(recvXMLString));
            pack.pk_head.command_id = Integer.parseInt(ParseXml.getElement("command_id").trim());
            pack.pk_head.command_status = Integer.parseInt(ParseXml.getElement("command_status").trim());
            pack.pk_head.sequence_no = Integer.parseInt(ParseXml.getElement("sequence_no").trim());
            }catch(JDOMException ex){
              throw ex;
            }catch(NullPointerException ex){
              throw ex;
        }
            if(pack.pk_head.command_id != xsmsE_ESME_QRYLINK)
                break;
            xsms_send_active_resp(conn, pack.pk_head.sequence_no);
        } while(true);

        switch(pack.pk_head.command_id)
        {
        case -2147483647:
            xsmse_login_result cl = new xsmse_login_result();
            cl.pack_id = 0x80000001;
            cl.stat = pack.pk_head.command_status;
            cl.system_id = (ParseXml.getElement("system_id").trim());
            return cl;

        case -2147483646:
            cr.pack_id = 0x80000002;
            cr.stat = pack.pk_head.command_status;
            return cr;

        case -2147483644:
            xsmse_submit_result sr = new xsmse_submit_result();
            sr.pack_id = 0x80000004;
            sr.seq = pack.pk_head.sequence_no;
            sr.stat = pack.pk_head.command_status;
            sr.message_id = (ParseXml.getElement("message_id").trim());
            return sr;

        case 5:
            xsmse_deliver_result cd = new xsmse_deliver_result();
            cd.pack_id = 5;
            int stat = pack.pk_head.command_status;
            cd.seq = pack.pk_head.sequence_no;
            try
            {
              if(ParseXml.getElement("media_type")==null)
                cd.media_type = ParseXml.getElement("media_type").trim();
              if(ParseXml.getElement("service_type")==null)
                cd.service_type = ParseXml.getElement("service_type").trim();
              if(ParseXml.getElement("source_address")==null)
                cd.source_address = ParseXml.getElement("source_address").trim();
              if(ParseXml.getElement("destination_address")==null)
                cd.destination_address = ParseXml.getElement("destination_address").trim();
              if(ParseXml.getElement("esm_class")==null)
                cd.esm_class = Byte.parseByte(ParseXml.getElement("esm_class").trim());
              if(ParseXml.getElement("protocol_ID")==null)
                cd.protocol_ID = Byte.parseByte(ParseXml.getElement("protocol_ID").trim());
              if(ParseXml.getElement("priority_flag")==null)
                cd.priority_flag = Byte.parseByte(ParseXml.getElement("priority_flag").trim());
              if(ParseXml.getElement("schedule_delivery_time")==null)
                cd.schedule_delivery_time = ParseXml.getElement("schedule_delivery_time").trim();
              if(ParseXml.getElement("validity_peroid")==null)
                cd.validity_peroid = ParseXml.getElement("validity_peroid").trim();
              if(ParseXml.getElement("registered_delivery_flag")==null)
                cd.registered_delivery_flag = Byte.parseByte(ParseXml.getElement("registered_delivery_flag").trim());
              if(ParseXml.getElement("replace_if_present_flag")==null)
                cd.replace_if_present_flag = Byte.parseByte(ParseXml.getElement("replace_if_present_flag").trim());
              if(ParseXml.getElement("data_coding")==null)
                cd.data_coding = Byte.parseByte(ParseXml.getElement("data_coding").trim());
              if(ParseXml.getElement("sm_default_msg_id")==null)
                cd.media_type = ParseXml.getElement("sm_default_msg_id").trim();
              if(ParseXml.getElement("sm_length")==null)
                cd.sm_length = Integer.parseInt(ParseXml.getElement("sm_length").trim());
              if(ParseXml.getElement("short_message_text")==null)
                cd.short_message_text = ParseXml.getElement("short_message_text").trim();

              stat = 0;
            }
            catch(Exception _ex)
            {
                DeliverFailException de = new DeliverFailException();
                throw de;
            }
            cd.stat = stat;
            return cd;

        case -2147483645:
            xsmse_query_result qr = new xsmse_query_result();
            qr.pack_id = 0x80000003;
            qr.seq = pack.pk_head.sequence_no;
            qr.stat = pack.pk_head.command_status;
            if(ParseXml.getElement("message_id")==null)
              qr.message_id = ParseXml.getElement("message_id").trim();
            if(ParseXml.getElement("final_date")==null)
              qr.final_date = ParseXml.getElement("final_date").trim();
            if(ParseXml.getElement("message_status")==null)
              qr.message_status = ParseXml.getElement("message_status").trim();
            if(ParseXml.getElement("gsm_code")==null)
              qr.gsm_code = ParseXml.getElement("gsm_code").trim();
            return qr;

        case -2147483640:
            cr.stat = pack.pk_head.command_status;
            cr.pack_id = 0x80000008;
            return cr;

        case -2147483627:
            cr.stat = pack.pk_head.command_status;
            cr.pack_id = 0x80000015;
            return cr;
        }
        UnknownPackException un = new UnknownPackException();
        throw un;
    }

    public void xsms_send_deliver_resp(conn_desc conn, int seq, int stat, String media_type, String source_address, String destination_address)
        throws IOException,OutOfBoundsException
    {
      xsmse_head ch = new xsmse_head();
      String sendXML = "";
      xsmse_deliver_resp deliver_resp = new xsmse_deliver_resp();
      DataOutputStream out = null;
      OutOfBoundsException e = new OutOfBoundsException();
      try
      {
          out = new DataOutputStream(conn.sock.getOutputStream());
          ch.command_id = xsmsE_ESME_DELIVER_SM_RESP;
          ch.command_status = 0;
          ch.sequence_no = seq;
          sendXML = getSendHeader(ch);

          if(media_type.length()>50)
            throw e;
          if(source_address.length()>21)
            throw e;
          if(destination_address.length()>21)
            throw e;
          sendXML = sendXML+deliver_resp.getDeliverRespBodyXML(media_type,source_address,destination_address);

          out.writeBytes(sendXML);
          out.flush();
          out = null;
      }
      catch(IOException e1)
      {
          out = null;
          throw e1;
      }

    }

    protected void xsms_send_active_resp(conn_desc conn, int seq)
        throws IOException
    {
        xsmse_head ch = new xsmse_head();
        try
         {

             ch.command_id = xsmsE_ESME_QRYLINK_RESP;
             ch.command_status = 0;
             ch.sequence_no = seq;

             sendHeader(ch,conn);
         }
         catch(IOException e)
         {
             throw e;
        }
    }

    public void xsms_logout(conn_desc conn)
        throws IOException
    {
      xsmse_head ch = new xsmse_head();

        try
        {

            ch.command_id = xsmsE_ESME_UBD;
            ch.command_status = 0;
            ch.sequence_no = conn.seq;

            sendHeader(ch,conn);
            conn.seq++;
            if(conn.seq == 0x7fffffff)
                conn.seq = 1;
            xsms_disconnect_from_ismg(conn);
        }
        catch(IOException e)
        {
            throw e;
        }
    }

//    protected void parseMsgContent(xsmse_deliver_result dr)
//    {
//        int i = 0;
//        int j = 0;
//        byte status[] = new byte[4];
//        for(; dr.short_msg[i] != 9; i++)
//            dr.msg_id[i] = dr.short_msg[i];
//
//        dr.msg_id[i] = 0;
//        i++;
//        j = 0;
//        for(status[0] = 9; dr.short_msg[i] != 9;)
//            if(dr.short_msg[i] == 48 && j == 0)
//            {
//                i++;
//            } else
//            {
//                status[j] = dr.short_msg[i];
//                i++;
//                j++;
//            }
//
//        if(status[0] == 9)
//        {
//            status[0] = 48;
//            status[1] = 0;
//        } else
//        {
//            status[j] = 0;
//        }
//        String stat = new String(status);
//        stat = stat.trim();
//        dr.status_from_rpt = Integer.parseInt(stat);
//        i++;
//        for(j = 0; dr.short_msg[i] != 9; j++)
//        {
//            dr.submit_time[j] = dr.short_msg[i];
//            i++;
//        }
//
//        dr.submit_time[j] = 0;
//        i++;
//        for(j = 0; dr.short_msg[i] != 0; j++)
//        {
//            dr.done_time[j] = dr.short_msg[i];
//            i++;
//        }
//
//        dr.done_time[j] = 0;
//        for(i = 0; i < 161; i++)
//            dr.short_msg[i] = 0;
//
//    }

//    protected int getDeliverStat(DataInputStream in, xsmse_deliver_result cd, int validlen)
//        throws IOException
//    {
//        int len = 16;
//        try
//        {
//            int len1 = read_unknowncount_byte(in, cd.src_addr);
//            if(len1 == 1)
//                return 38;
//            switch(testDigitString(cd.src_addr, 20))
//            {
//            case -1:
//                return 5;
//
//            case -2:
//                return 38;
//            }
//            len += len1;
//            len1 = read_unknowncount_byte(in, cd.dst_addr);
//            if(len1 != 1)
//                switch(testDigitString(cd.dst_addr, 20))
//                {
//                case -1:
//                    return 5;
//
//                case -2:
//                    return 38;
//                }
//            len += len1;
//            len1 = read_unknowncount_byte(in, cd.svc_type);
//            if(len1 != 1 && testDigitString(cd.svc_type, 10) != 1)
//                return 5;
//            len += len1;
//            cd.proto_id = in.readByte();
//            cd.status_rpt = in.readByte();
//            cd.priority = in.readByte();
//            if(cd.priority > 9)
//                return 39;
//            cd.data_coding = in.readByte();
//            cd.sm_len = in.readByte();
//            int templen = cd.sm_len & 0xff;
//            len += 5;
//            if(templen > 160)
//                return 37;
//            len += templen;
//            if(++len != validlen)
//                return 5;
//            read_count_byte(in, cd.short_msg, templen + 1);
//            if(cd.status_rpt == 1)
//                parseMsgContent(cd);
//        }
//        catch(IOException e)
//        {
//            throw e;
//        }
//        return 0;
//    }
/*
    public int xsms_deliver(conn_desc conn, xsmse_deliver_result rs)
    {
        int stat = 0;
        DataOutputStream out = null;
        DataInputStream in = null;
        xsmse_head ch = new xsmse_head();
        new xsmse_pack();
        int status = 0;
        xsmse_head resp_ch = new xsmse_head();
        try
        {
            out = new DataOutputStream(conn.sock.getOutputStream());
            in = new DataInputStream(conn.sock.getInputStream());
            ch.pk_len = in.readInt();
            ch.pk_cmd = in.readInt();
        }
        catch(Exception _ex)
        {
            ch.pk_len = 16;
            ch.pk_cmd = 0x80000000;
            ch.pk_stat = 0;
            ch.pk_seq = conn.seq;
            try
            {
                sendHeader(ch, out);
            }
            catch(Exception _ex2)
            {
                return 2009;
            }
            rs = null;
            return 2009;
        }
        try
        {
            ch.pk_stat = in.readInt();
            ch.pk_seq = in.readInt();
            stat = getDeliverStat(in, rs, ch.pk_len);
            if(stat == -1)
            {
                in = null;
                out = null;
                return 2009;
            }
            resp_ch.pk_stat = 0;
            if(stat != 0)
                resp_ch.pk_stat = stat;
            resp_ch.pk_cmd = 0x80000005;
            resp_ch.pk_len = 16;
            resp_ch.pk_seq = conn.seq;
            sendHeader(resp_ch, out);
        }
        catch(Exception _ex)
        {

⌨️ 快捷键说明

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