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