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

📄 smscconnection.java

📁 本人为友邦公司做的模拟网关源代码
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
			/*
			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 + -