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

📄 smsdeliver.java

📁 WAP PUSH后台源码,WAP PUSH后台源码
💻 JAVA
字号:
package com.tssx.ebiz.sgip;

import java.io.*;
/**
 * <p>类名: SMSDeliver</p>
 * <p>功能: 接受MO短信</p>
 * <p>版权: Copyright (c) 2002</p>
 * <p>公司: 深讯信科</p>
 * <p>版本: 1.0</p>
 * @程序 xuke
 * @修改纪录
 */
public class SMSDeliver extends SMSData{
     private String userNumber;//	21	Text	发送短消息的用户手机号,手机号码前加“86”国别标志
     private String spNumber;//	21	Text	SP的接入号码
     private int tp_pid;//	1	Integer	GSM协议类型。详细解释请参考GSM03.40中的9.2.3.9
     private int tp_udhi;//	1	Integer	GSM协议类型。详细解释请参考GSM03.40中的9.2.3.23,仅使用1位,右对齐
     private int messageCoding;//	1	Integer	短消息的编码格式。0:纯ASCII字符串3:写卡操作4:二进制编码8:UCS2编码15: GBK编码其它参见GSM3.38第4节:SMS Data Coding Scheme
     private int msgLen;//	4	Integer	短消息的长度
     private String messageContent;//	Message Length	Text	短消息的内容
     private String reserve;

     public SMSDeliver(){
          super();
     }
     public String getUserNumber() {
             return userNumber;
     }
     public void setUserNumber(String newUserNumber) {
            userNumber = newUserNumber;
     }
     public String getSpNumber() {
             return spNumber;
     }
     public void setSpNumber(String newSpNumber) {
             spNumber = newSpNumber;
     }
     public int getTp_pid() {
             return tp_pid;
     }
     public void setTp_pid(int newTp_pid) {
             tp_pid = newTp_pid;
     }
     public int getTp_udhi() {
             return tp_udhi;
     }
     public void setTp_udhi(int newTp_udhi) {
             tp_udhi = newTp_udhi;
     }
     public int getMessageCoding() {
             return messageCoding;
     }
     public void setMessageCoding(int newMessageCoding) {
             messageCoding = newMessageCoding;
     }
     public int getMsgLen() {
             return msgLen;
     }
     public void setMsgLen(int newMsgLen) {
             msgLen = newMsgLen;
     }
     public String getMessageContent() {
             return messageContent;
     }
     public void setMessageContent(String newMessageContent) {
             messageContent = newMessageContent;
     }

     public String getReserve() {
             return reserve;
     }
     public void setReserve(String newReserve) {
             reserve = newReserve;
     }
     public synchronized void read(DataInputStream m_is) throws SgipException,IOException {
          int i=0;
          byte[] head1=new byte[4];
          head1[0]=m_is.readByte();
          head1[1]=m_is.readByte();
          head1[2]=m_is.readByte();
          head1[3]=m_is.readByte();
          this.messageLength=(head1[0] & 0xff) << 24 | (head1[1] & 0xff) << 16 | (head1[2] & 0xff) << 8 | head1[3] & 0xff;

          byte[] head2=new byte[4];
          head2[0]=m_is.readByte();
          head2[1]=m_is.readByte();
          head2[2]=m_is.readByte();
          head2[3]=m_is.readByte();
          this.commandID=(head2[0] & 0xff) << 24 | (head2[1] & 0xff) << 16 | (head2[2] & 0xff) << 8 | head2[3] & 0xff;
//          if(this.commandID!=CommandID.SGIP_DELIVER){
//               throw new SgipException();
//          }

          byte[] head3=new byte[4];
          head3[0]=m_is.readByte();
          head3[1]=m_is.readByte();
          head3[2]=m_is.readByte();
          head3[3]=m_is.readByte();
          this.seqAddr=(head3[0] & 0xff) << 24 | (head3[1] & 0xff) << 16 | (head3[2] & 0xff) << 8 | head3[3] & 0xff;
          byte[] head4=new byte[4];
          head4[0]=m_is.readByte();
          head4[1]=m_is.readByte();
          head4[2]=m_is.readByte();
          head4[3]=m_is.readByte();
          this.seqDate=(head4[0] & 0xff) << 24 | (head4[1] & 0xff) << 16 | (head4[2] & 0xff) << 8 | head4[3] & 0xff;
          byte[] head5=new byte[4];
          head5[0]=m_is.readByte();
          head5[1]=m_is.readByte();
          head5[2]=m_is.readByte();
          head5[3]=m_is.readByte();
          this.sequence=(head5[0] & 0xff) << 24 | (head5[1] & 0xff) << 16 | (head5[2] & 0xff) << 8 | head5[3] & 0xff;

          i=0;
          byte[] body1=new byte[21];
          while(i<body1.length){
               body1[i]=m_is.readByte();
               i++;
          }
          this.userNumber=new String(body1);

          i=0;
          byte[] body2=new byte[21];
          while(i<body2.length){
               body2[i]=m_is.readByte();
               i++;
          }
          this.spNumber=new String(body2);

          byte body3=m_is.readByte();
          this.tp_pid=body3;
          byte body4=m_is.readByte();
          this.tp_udhi=body4;
          byte body5=m_is.readByte();
          this.messageCoding=body5;

          byte[] body6=new byte[4];
          body6[0]=m_is.readByte();
          body6[1]=m_is.readByte();
          body6[2]=m_is.readByte();
          body6[3]=m_is.readByte();
          this.msgLen=(body6[0] & 0xff) << 24 | (body6[1] & 0xff) << 16 | (body6[2] & 0xff) << 8 | body6[3] & 0xff;

          i=0;
          byte[] body7=new byte[msgLen];
          while(i<body7.length){
               body7[i]=m_is.readByte();
               i++;
          }
          this.messageContent=new String(body7);

          i=0;
          byte[] body8=new byte[8];
          while(i<body8.length){
               body8[i]=m_is.readByte();
               i++;
          }
          this.reserve=new String(body8);

//          SMSDeliverThread smsdeliverthread=new SMSDeliverThread(seqAddr,seqDate,sequence,messageLength,commandID,
//                            spNumber,userNumber,tp_pid,tp_udhi,messageCoding,
//                            msgLen,messageContent,reserve);
//          Thread newThread = new Thread(smsdeliverthread);
//          newThread.start();
//          System.out.println("----------deliver begin----------");
//          System.out.println("messageLength:"+messageLength);
//          System.out.println("commandID:"+commandID);
//          System.out.println("seqAddr:"+seqAddr);
//          System.out.println("seqDate:"+seqDate);
//          System.out.println("sequence:"+sequence);
//
//          System.out.println("userNumber:"+userNumber);
//          System.out.println("spNumber:"+spNumber);
//          System.out.println("tp_pid:"+tp_pid);
//          System.out.println("tp_udhi:"+tp_udhi);
//          System.out.println("messageCoding:"+messageCoding);
//          System.out.println("msgLen:"+msgLen);
//          System.out.println("messageContent:"+messageContent);
//          System.out.println("reserve:"+reserve);
//          System.out.println("----------deliver end----------");
     }
     public synchronized void write(DataOutputStream m_os) throws SgipException,IOException{
          int i=0;
          int j=0;
          byte[] temp=this.messageContent.getBytes();

          this.msgLen=temp.length;

          this.messageLength=20+57+msgLen;
          this.commandID=CommandID.SGIP_DELIVER;

          byte b[] = new byte[messageLength];

          /* head */
          byte[] head1 = getInteger4(messageLength);
          byte[] head2=getInteger4(commandID);
          byte[] head3=getInteger4(seqAddr);
          byte[] head4=getInteger4(seqDate);
          byte[] head5=getInteger4(sequence);

          /* body */
          byte[] body1 = getText(21,userNumber);
          byte[] body2 = getText(21,spNumber);
          byte body3 = getInteger1(tp_pid);
          byte body4 = getInteger1(tp_udhi);
          byte body5 = getInteger1(messageCoding);
          byte[] body6 = getInteger4(msgLen);
          byte[] body7 = getText(msgLen,messageContent);
          byte[] body8 = getText(8,reserve);

          j=0;
          while(j<head1.length){
               b[i]=head1[j];
               i++;
               j++;
          }
          j=0;
          while(j<head2.length){
               b[i]=head2[j];
               i++;
               j++;
          }
          j=0;
          while(j<head3.length){
               b[i]=head3[j];
               i++;
               j++;
          }
          j=0;
          while(j<head4.length){
               b[i]=head4[j];
               i++;
               j++;
          }
          j=0;
          while(j<head5.length){
               b[i]=head5[j];
               i++;
               j++;
          }
          j=0;
          while(j<body1.length){
               b[i]=body1[j];
               i++;
               j++;
          }
          j=0;
          while(j<body2.length){
               b[i]=body2[j];
               i++;
               j++;
          }
          b[i]=body3;
          i++;
          b[i]=body4;
          i++;
          b[i]=body5;
          i++;
          j=0;
          while(j<body6.length){
               b[i]=body6[j];
               i++;
               j++;
          }
          j=0;
          while(j<body7.length){
               b[i]=body7[j];
               i++;
               j++;
          }
          j=0;
          while(j<body8.length){
               b[i]=body8[j];
               i++;
               j++;
          }
          m_os.write(b);

          System.out.println("----------deliver begin----------");
          System.out.println("messageLength:"+messageLength);
          System.out.println("commandID:"+commandID);
          System.out.println("seqAddr:"+seqAddr);
          System.out.println("seqDate:"+seqDate);
          System.out.println("sequence:"+sequence);
          System.out.println("----------deliver end----------");
     }

}

⌨️ 快捷键说明

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