📄 smsdeliver.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 + -