📄 smscconnection.java
字号:
/*
if(bResp)
{
SMSCFrame.SendArea.append("Send report to " + myID + " succeed .\n");
}
*/
}
//saveMsg(smpp);
return true;
}
private String writeString(String msg_id) {
String str="0";
for (int i=1; i<10-msg_id.length(); i++)
str = str+'0';
str = str + msg_id;
return str;
}
/**
* 根据SMPP报文的长度字段从输入数据流中读取相应的报文
* 返回值: receivedData[0].length == 1 读取数据出错
*/
public byte[] recv()//接受的数据不包含总共长度
{
byte[] btRecvData;
int dataSize;
int dataToReadLeft;
int dataThisTimeRead;
int dataTotalSizeToRead;
try {
dataSize = dataInStream.readInt();
if(dataSize <= 4) {
btRecvData = new byte[1];
btRecvData[0] = Constants.ERROR_OTHER;
return btRecvData;
}
//注意:recievedata 不包含消息包长度这四个字节
dataTotalSizeToRead = dataSize - 4;
btRecvData = new byte[dataTotalSizeToRead];
dataToReadLeft = dataTotalSizeToRead;
while(dataToReadLeft > 0) {
dataThisTimeRead = dataInStream.read(btRecvData,dataTotalSizeToRead - dataToReadLeft,dataToReadLeft);
dataToReadLeft -= dataThisTimeRead;
}
} catch(InterruptedIOException e) {
btRecvData = new byte[1];
btRecvData[0] = Constants.ERROR_INTERRUPT;
}
catch(IOException e) {
btRecvData = new byte[1];
btRecvData[0] = Constants.ERROR_SOCKET;
}
catch(Exception ex) {
btRecvData = new byte[1];
btRecvData[0] = Constants.ERROR_OTHER;
}
return btRecvData;
}
public boolean send(SmscShortMsg sm) {
int i;
boolean bResp;
byte[] btMsg;
displaySendMsg(sm);
btMsg = sm.getPackage();
if(btMsg == null || btMsg.length <= 0) {
SMSCFrame.SendArea.append("SMSC generate send package return null ......\n");
return false;
}
if(Constants.DISPLAY_BINARY) {
for(i=0; i<btMsg.length; i++) {
if(i%12 == 0 && i>0)
SMSCFrame.SendArea.append("\n");
SMSCFrame.SendArea.append("[" + btMsg[i] + "] ");
}
SMSCFrame.SendArea.append("\n\n");
}
bResp = send(btMsg);
/*
if(bResp)
{
if(sm.headCmdID == SmscConstants.SMPP_ENQUIRE_LINK_RESP && Constants.DISPLAY_ACTIVE == false)
return bResp;
SMSCFrame.SendArea.append("Send SMPP to " + PeerHost + " Seq : " +
"[" + sm.headSeqcNo + "]" + " Command ID : " +
"[" + sm.headCmdID + "] .\n\n" );
}
else
SMSCFrame.SendArea.append("Send SMPP failed, to " + PeerHost + " Seq : " +
"[" + sm.headSeqcNo + "]" + " Command ID : " +
"[" + sm.headCmdID + "] .\n\n" );
*/
return bResp;
}
public boolean send(byte[] bb) {
try {
myoutputstream.write( bb );
myoutputstream.flush() ;
return true;
} catch(NullPointerException e) {
disconnect();
(SMSCConnectionManager.instance()).delConnection(myID);
return false;
}
catch (IOException e) {
disconnect();
(SMSCConnectionManager.instance()).delConnection(myID);
return false;
}
}
public boolean disconnect() {
try {
myinputstream.close() ;
myoutputstream.close() ;
mySocket.close() ;
if(strBindType.equals(Constants.Receiver)) {
SMSCConnectionManager.instance().removeHost(PeerHost);
}
} catch ( Exception e) {
if(Constants.SMSC_DEBUG)
SMSCFrame.RecvArea.append("SMSC connection disconnect exception, " +
e.getMessage() + " .\n");
}
return true;
}
/*
private boolean heartBeat()
{
SmscShortMsg sm = new SmscShortMsg();
sm.headCmdID = SmscConstants.SMPP_ENQUIRE_LINK_RESP;
sm.headCmdStatus = 0;
sm.headSeqcNo = Constants.nSequence;
send(sm);
return true;
}
*/
void displayRecvMsg(SmscShortMsg sm) {
if(sm.headCmdID == SmscConstants.SMPP_ENQUIRE_LINK) {
if(Constants.DISPLAY_ACTIVE) {
SMSCFrame.RecvArea.append("COMMAND ID = " + sm.headCmdID + "\n");
SMSCFrame.RecvArea.append("COMMAND STATUS = " + sm.headCmdStatus + "\n");
SMSCFrame.RecvArea.append("Sequence NO = " + sm.headSeqcNo + "\n");
}
return;
}
if(Constants.DISPLAY_MSG) {
SMSCFrame.RecvArea.append("COMMAND ID = " + sm.headCmdID + "\n");
SMSCFrame.RecvArea.append("COMMAND STATUS = " + sm.headCmdStatus + "\n");
SMSCFrame.RecvArea.append("Sequence NO = " + sm.headSeqcNo + "\n");
if(sm.headCmdID == SmscConstants.SMPP_SUBMIT_SM) {
SMSCFrame.RecvArea.append("Service Type = " + sm.msgServiceType + "\n");
SMSCFrame.RecvArea.append("Source address ton = " + sm.msgSourceAddressTon + "\n");
SMSCFrame.RecvArea.append("Source address npi = " + sm.msgSourceAddressNpi + "\n");
SMSCFrame.RecvArea.append("Source address = " + sm.msgSourceAddress + "\n");
SMSCFrame.RecvArea.append("Dest address ton = " + sm.msgDestAddressTon + "\n");
SMSCFrame.RecvArea.append("Dest address npi = " + sm.msgDestAddressNpi + "\n");
SMSCFrame.RecvArea.append("Dest address = " + sm.msgDestAddress + "\n");
SMSCFrame.RecvArea.append("SM class = " + sm.msgEsmClass + "\n");
SMSCFrame.RecvArea.append("Protocol ID = " + sm.msgProtocolID + "\n");
SMSCFrame.RecvArea.append("Priority flag = " + sm.msgPriorityFlag + "\n");
SMSCFrame.RecvArea.append("Delivery time = " + sm.msgScheduleDeliveryTime + "\n");
SMSCFrame.RecvArea.append("Validity peroid = " + sm.msgValidityPeroid + "\n");
SMSCFrame.RecvArea.append("Register SM flag = " + sm.msgRegisterdDeliveryFlag + "\n");
SMSCFrame.RecvArea.append("Replace flag = " + sm.msgReplaceIfPresentFlag + "\n");
SMSCFrame.RecvArea.append("Data coding = " + sm.msgDataCoding + "\n");
SMSCFrame.RecvArea.append("SM default msg ID = " + sm.msgSmDefaultMsgID + "\n");
SMSCFrame.RecvArea.append("SM length = " + sm.msgSmLength + "\n");
SMSCFrame.RecvArea.append("Short message text = " + sm.msgShortMsgText + "\n");
} else if(sm.headCmdID == SmscConstants.SMPP_BIND_RECEIVER ||
sm.headCmdID == SmscConstants.SMPP_BIND_TRANSMITTER) {
SMSCFrame.RecvArea.append("System ID = " + sm.bindSysID + "\n");
SMSCFrame.RecvArea.append("Password = " + sm.bindSysPwd + "\n");
SMSCFrame.RecvArea.append("System type = " + sm.bindSysType + "\n");
SMSCFrame.RecvArea.append("Interface version = " + sm.bindSysVersion + "\n");
SMSCFrame.RecvArea.append("Ton = " + sm.bindTon + "\n");
SMSCFrame.RecvArea.append("Npi = " + sm.bindNpi + "\n");
SMSCFrame.RecvArea.append("Address range = " + sm.bindAddrRange + "\n");
} else if(sm.headCmdID == SmscConstants.SMPP_DELIVER_SM_RESP) {
SMSCFrame.RecvArea.append("Ack message ID = " + sm.ackMsgID + "\n");
} else
;
}
}
void displaySendMsg(SmscShortMsg sm) {
if(sm.headCmdID == SmscConstants.SMPP_ENQUIRE_LINK_RESP) {
if(Constants.DISPLAY_ACTIVE) {
SMSCFrame.SendArea.append("COMMAND ID = " + sm.headCmdID + "\n");
SMSCFrame.SendArea.append("COMMAND STATUS = " + sm.headCmdStatus + "\n");
SMSCFrame.SendArea.append("Sequence NO = " + sm.headSeqcNo + "\n");
}
return;
}
if(Constants.DISPLAY_MSG) {
SMSCFrame.SendArea.append("COMMAND ID = " + sm.headCmdID + "\n");
SMSCFrame.SendArea.append("COMMAND STATUS = " + sm.headCmdStatus + "\n");
SMSCFrame.SendArea.append("Sequence NO = " + sm.headSeqcNo + "\n");
if(sm.headCmdID == SmscConstants.SMPP_DELIVER_SM) {
SMSCFrame.SendArea.append("Service Type = " + sm.msgServiceType + "\n");
SMSCFrame.SendArea.append("Source address ton = " + sm.msgSourceAddressTon + "\n");
SMSCFrame.SendArea.append("Source address npi = " + sm.msgSourceAddressNpi + "\n");
SMSCFrame.SendArea.append("Source address = " + sm.msgSourceAddress + "\n");
SMSCFrame.SendArea.append("Dest address ton = " + sm.msgDestAddressTon + "\n");
SMSCFrame.SendArea.append("Dest address npi = " + sm.msgDestAddressNpi + "\n");
SMSCFrame.SendArea.append("Dest address = " + sm.msgDestAddress + "\n");
SMSCFrame.SendArea.append("SM class = " + sm.msgEsmClass + "\n");
SMSCFrame.SendArea.append("Protocol ID = " + sm.msgProtocolID + "\n");
SMSCFrame.SendArea.append("Priority flag = " + sm.msgPriorityFlag + "\n");
SMSCFrame.SendArea.append("Delivery time = " + sm.msgScheduleDeliveryTime + "\n");
SMSCFrame.SendArea.append("Validity peroid = " + sm.msgValidityPeroid + "\n");
SMSCFrame.SendArea.append("Register SM flag = " + sm.msgRegisterdDeliveryFlag + "\n");
SMSCFrame.SendArea.append("Replace flag = " + sm.msgReplaceIfPresentFlag + "\n");
SMSCFrame.SendArea.append("Data coding = " + sm.msgDataCoding + "\n");
SMSCFrame.SendArea.append("SM default msg ID = " + sm.msgSmDefaultMsgID + "\n");
SMSCFrame.SendArea.append("SM length = " + sm.msgSmLength + "\n");
SMSCFrame.SendArea.append("Short message text = " + sm.msgShortMsgText + "\n");
} else if(sm.headCmdID == SmscConstants.SMPP_BIND_TRANSMITTER_RESP ||
sm.headCmdID == SmscConstants.SMPP_BIND_RECEIVER_RESP ) {
SMSCFrame.SendArea.append("System ID = " + sm.bindSysID + "\n");
} else if(sm.headCmdID == SmscConstants.SMPP_SUBMIT_SM_RESP) {
SMSCFrame.SendArea.append("Ack message ID = " + sm.ackMsgID + "\n");
} else
;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -