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

📄 cmppdeliver.java

📁 短信网关发送接受平台。
💻 JAVA
字号:
import java.lang.*;
import java.net.*;
import java.io.*;

import CMPPCommandID;
import CMPPPacket;

import CMPPStatusReport;

public class CMPPDeliver extends CMPPPacket
{
	public int msg_id;//消息标识
	public String destnation_id = null;//SP的接入代码,一般4~6位
	public String service_id = null;//业务类型
	public byte msg_fmt = 0;//信息格式
	public String src_terminal_id = null;//源终端MSISDN号码
	public byte registered_delivery = 0;//是否为应答信息
	public byte msg_length = 0;//消息长度
	public String msg_content = null;//消息内容
	public CMPPStatusReport m_status_report = new CMPPStatusReport(this);//状态报告
	//保留字段
	private String reserve = "19751204";
	
	public CMPPDeliver(int sequence_id)
	{
		super(CMPPCommandID.CMPP_DELIVER,sequence_id);
	}
	
	public CMPPDeliver(CMPPPacket packet)
	{
		super(packet);
	}
	
	public boolean isValid()
	{
		if(command_id != CMPPCommandID.CMPP_DELIVER)
		{
			CMPPLog.log("CMPPDeliver.isValid : not a CMPP_DELIVER command !",
				CMPPLog.LOG_CMPP_DELIVER | CMPPLog.LOG_ISVALID_METHOD);
			return false;
		}
		
		if(msg_id <= 0)
		{
			CMPPLog.log("CMPPDeliver.isValid : invalid msg_id !",
				CMPPLog.LOG_CMPP_DELIVER | CMPPLog.LOG_ISVALID_METHOD);
			return false;
		}
		
		if(destnation_id == null || destnation_id.length() != 21)
		{
			CMPPLog.log("CMPPDeliver.isValid : invalid destnation_id !",
				CMPPLog.LOG_CMPP_DELIVER | CMPPLog.LOG_ISVALID_METHOD);
			return false;
		}
		
		if(service_id == null || service_id.length() != 10)
		{
			CMPPLog.log("CMPPDeliver.isValid : invalid service_id !",
				CMPPLog.LOG_CMPP_DELIVER | CMPPLog.LOG_ISVALID_METHOD);
			return false;
		}
		
		if(msg_fmt != 0 && msg_fmt != 3 && msg_fmt != 4 && msg_fmt != 8 && msg_fmt != 15)
		{
			CMPPLog.log("CMPPDeliver.isValid : invalid msg_fmt !",
				CMPPLog.LOG_CMPP_DELIVER | CMPPLog.LOG_ISVALID_METHOD);
			return false;
		}
		
		if(src_terminal_id == null || src_terminal_id.length() != 21)
		{
			CMPPLog.log("CMPPDeliver.isValid : invalid src_terminal_id !",
				CMPPLog.LOG_CMPP_DELIVER | CMPPLog.LOG_ISVALID_METHOD);
			return false;
		}
	
		if(registered_delivery < 0 || registered_delivery > 1)
		{
			CMPPLog.log("CMPPDeliver.isValid : invalid registered_delivery !",
				CMPPLog.LOG_CMPP_DELIVER | CMPPLog.LOG_ISVALID_METHOD);
			return false;
		}
		
		if(registered_delivery == 1)
		{
			msg_length = 56;
			msg_content = null;
			
			if(!m_status_report.isValid())
			{
				CMPPLog.log("CMPPDeliver.isValid : invalid status_report !",
					CMPPLog.LOG_CMPP_DELIVER | CMPPLog.LOG_ISVALID_METHOD);
				return false;
			}
		}
		else
		{
			if(msg_length <= 0 || (msg_fmt == 0 && msg_length >= 160) || (msg_fmt != 0 && msg_length > 140))
			{
				CMPPLog.log("CMPPDeliver.isValid : invalid msg_length !",
					CMPPLog.LOG_CMPP_DELIVER | CMPPLog.LOG_ISVALID_METHOD);
				return false;
			}
			
			if(msg_content == null || msg_content.length() != msg_length)
			{
				CMPPLog.log("CMPPDeliver.isValid : invalid msg_content !",
					CMPPLog.LOG_CMPP_DELIVER | CMPPLog.LOG_ISVALID_METHOD);
				return false;
			}
		}
		
		return true;			
	}
	
	public void dump(long lMethod)
	{
		CMPPLog.log("\tmsg_id = 0x" + CMPPUtility.toHexString(msg_id),
			CMPPLog.LOG_CMPP_DELIVER | lMethod);
			
		CMPPLog.log("\tdestnation_id = \"" + destnation_id + "\"",
			CMPPLog.LOG_CMPP_DELIVER | lMethod);
	
		CMPPLog.log("\tservice_id = \"" + service_id + "\"",
			CMPPLog.LOG_CMPP_DELIVER | lMethod);

		CMPPLog.log("\tmsg_fmt = " + msg_fmt 
			+ " [" + CMPPUtility.getMsgFmtDescription(msg_fmt) + "]",
			CMPPLog.LOG_CMPP_DELIVER | lMethod);
		
		CMPPLog.log("\tsrc_terminal_id = \"" + src_terminal_id + "\"",
			CMPPLog.LOG_CMPP_DELIVER | lMethod);
		
		CMPPLog.log("\tregistered_delivery = " + registered_delivery
			 + " [" + (registered_delivery == 0 ? "非应答信息" : "状态报告") + "]",
			CMPPLog.LOG_CMPP_DELIVER | lMethod);
		
		if(registered_delivery == 1)
		{
			m_status_report.dump(lMethod);
		}
		else
		{
			CMPPLog.log("\tmsg_length = " + msg_length,
				CMPPLog.LOG_CMPP_DELIVER | lMethod);
				
			CMPPLog.log("\tmsg_content = \"" + msg_content + "\"",
				CMPPLog.LOG_CMPP_DELIVER | lMethod);
		}
		
		CMPPLog.log("\treserve = \"" + reserve + "\"",
			CMPPLog.LOG_CMPP_SUBMIT | lMethod);
	}
	
	public void wrap()
		throws CMPPException
	{
		CMPPLog.log("CMPPDeliver.wrap : wrap elements !",
			CMPPLog.LOG_CMPP_DELIVER | CMPPLog.LOG_WRAP_METHOD);

		dump(CMPPLog.LOG_WRAP_METHOD);
		
		insertString(reserve);
		
		if(registered_delivery == 1)
		{
			m_status_report.wrap();
		}
		else
		{
			insertString(msg_content);
		}
		
		insertByte(msg_length);
		insertByte(registered_delivery);
		insertString(src_terminal_id);
		insertByte(msg_fmt);
		insertString(service_id);
		insertString(destnation_id);
		insertInteger(msg_id);
	}

	public void unwrap()
		throws CMPPException
	{
		CMPPLog.log("CMPPDeliver.unwrap : unwrap elements !",
			CMPPLog.LOG_CMPP_DELIVER | CMPPLog.LOG_UNWRAP_METHOD);
			
		msg_id = getInteger();
		destnation_id = getString(21);
		service_id = getString(10);
		msg_fmt = getByte();
		src_terminal_id = getString(21);
		registered_delivery = getByte();
		msg_length = getByte();
		
		if(registered_delivery == 1)
		{
			m_status_report.unwrap();
		}
		else
		{
			msg_content = getString(msg_length);
		}
		
		reserve = getString(8);

		dump(CMPPLog.LOG_UNWRAP_METHOD);
	}	
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -