📄 smscconnection.java~1~
字号:
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 + -