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

📄 recvthread.java

📁 本手册是SMIAS (Short Message Internet Access Solution)短信网关系统SP接入子系统通信接口 Java API的使用指南。它详细介绍了SP-SMIAS网关之间
💻 JAVA
字号:
/*
 * 创建日期 2004-6-9
 *
 * 更改所生成文件模板为
 * 窗口 > 首选项 > Java > 代码生成 > 代码和注释
 */
package cmpp2;
import java.util.*;
import java.text.DateFormat;
import com.commerceware.cmpp.*;
/**
 * @author Administrator
 *
 * 更改所生成类型注释的模板为
 * 窗口 > 首选项 > Java > 代码生成 > 代码和注释
 */
public class RecvThread extends Thread
{
	ArrayList inal;
	boolean instop;
	Recvmsg rm;
	final CMPP p = new CMPP();
	final conn_desc con = new conn_desc();
	cmppe_result cr = new cmppe_result();
	String testorg, testdest, testmsg;
	Date date = new Date();
	DateFormat shortDateFormat =
		DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT);
	DateFormat mediumDateFormat =
		DateFormat.getDateTimeInstance(DateFormat.MEDIUM, DateFormat.MEDIUM);
	int recon;
	public static void main(String[] args)
	{
	}
	public void initRecv(ArrayList inal, boolean instop)
	{
		this.inal = inal;
		this.instop = instop;
	}
	public void run()
	{
		recon = 0;
		System.out.println("recv start");
		String s = "SP 测试";
		char test[] = new char[10];
		byte short_msg[] = new byte[150];
		byte buf[] = new byte[40];
		byte b1[] = new byte[10];
		cmppe_submit sub = new cmppe_submit();
		cmppe_submit_result res = new cmppe_submit_result();
		cmppe_cancel can = new cmppe_cancel();
		// cmppe_result cr = new cmppe_result();
		cmppe_deliver_result rs = new cmppe_deliver_result();
		try
		{
			p.cmpp_connect_to_ismg("211.140.2.202", 7890, con);
			System.out.println("connect ok");

			p.cmpp_login(con, "(企业代码)", "(密码)", (byte) 1, 0x12, 0105121212); //

			System.out.println("login ok");
			readPa();
			sleep(1000);
			TestThread tt = new TestThread();
			tt.initTest(p, con, false);
			tt.start();
			while (!instop)
			{
				try
				{
					if (instop)
					{
						p.cmpp_active_test(con);
					}
					readPa();
					sleep(10);
				}
				catch (Exception e)
				{
					System.out.println(e.getMessage());
					e.printStackTrace();
					System.out.println("recvThread have a exception");
					try
					{
						System.in.read();
					}
					catch (Exception e1)
					{
					}
				}
			}
			p.cmpp_logout(con);
			readPa();
			tt.stopTest();
		}
		catch (Exception e)
		{
			System.out.println(e.getMessage());
			e.printStackTrace();
			System.out.println(" recv Thread out have a exception");
			try
			{
				System.in.read();
			}
			catch (Exception e1)
			{
			}
		}
	}
	public void stopRecv()
	{
		instop = true;
	}
	public void readPa()
	{
		try
		{
			cr = p.readResPack(con);
			switch (cr.pack_id)
			{
				case CMPP.CMPPE_NACK_RESP :
					System.out.println("get nack pack");
					break;
				case CMPP.CMPPE_LOGIN_RESP :
					cmppe_login_result cl;
					cl = (cmppe_login_result) cr;
					System.out.println("recv login resp: STAT = " + cl.stat);
					break;
				case CMPP.CMPPE_LOGOUT_RESP :
					System.out.println("recv logout resp: STAT = " + cr.stat);
					break;
				case CMPP.CMPPE_SUBMIT_RESP :
					cmppe_submit_result sr;
					sr = (cmppe_submit_result) cr;
					System.out.println("recv submit resp: STAT = " + sr.stat);
					break;
				case CMPP.CMPPE_DELIVER :
					byte msg[], src_addr[], dest_addr[];
					System.out.println("5: STAT = 0");
					cmppe_deliver_result cd = (cmppe_deliver_result) cr;
					p.cmpp_send_deliver_resp(con, cd.seq, cd.stat);
					msg = cd.short_msg;
					src_addr = cd.src_addr;
					dest_addr = cd.dst_addr;
					int length = (int) cd.sm_len;
					int code = (int) cd.data_coding;
					String msgs = "", srcaddr = "", destaddr = "";
					System.out.println(code);
					if (code == 8)
					{
						msgs = new String(msg, "UTF-16");
						for (int i = 0; i < src_addr.length; i++)
						{
							if (src_addr[i] != 0)
							{
								srcaddr += (char) src_addr[i];
							}
							else
							{
								break;
							}
						}
						for (int i = 0; i < dest_addr.length; i++)
						{
							if (dest_addr[i] != 0)
							{
								destaddr += (char) dest_addr[i];
							}
							else
							{
								break;
							}
						}
						//srcaddr = new String(src_addr, "ISO8859-1");
						//destaddr = new String(dest_addr, "ISO8859-1");
						System.out.println(code + "     " + length);
						System.out.println("recv_msg=" + msgs);
						System.out.println(
							"recv_orgaddr=" + srcaddr + srcaddr.length());
						System.out.println(
							"recv_destaddr=" + destaddr + destaddr.length());
						rm = new Recvmsg();
						rm.setContent(msgs.substring(0, length));
						rm.setOrgaddr(srcaddr);
						rm.setDestaddr(destaddr);
						inal.add(rm);
					}
					else
					{
						if (length < 1)
							break;
						for (int i = 0; i < msg.length; i++)
							if (src_addr[i] != 0)
							{
								msgs += (char) msg[i];
							}
							else
							{
								break;
							}
						if (msgs.trim().length() == 0)
							break;
						for (int i = 0; i < src_addr.length; i++)
						{
							if (src_addr[i] != 0)
							{
								srcaddr += (char) src_addr[i];
							}
							else
							{
								break;
							}
						}
						for (int i = 0; i < dest_addr.length; i++)
						{
							if (dest_addr[i] != 0)
							{
								destaddr += (char) dest_addr[i];
							}
							else
							{
								break;
							}
						}
						//srcaddr = new String(src_addr, "ISO8859-1");
						//destaddr = new String(dest_addr, "ISO8859-1");
						System.out.println(code + "     " + length);
						System.out.println("recv_msg=" + msgs);
						System.out.println("除空各的长度" + msgs.trim().length());
						System.out.println(
							"recv_orgaddr=" + srcaddr + srcaddr.length());
						System.out.println(
							"recv_destaddr=" + destaddr + destaddr.length());
						rm = new Recvmsg();
						rm.setContent(msgs);
						rm.setOrgaddr(srcaddr);
						rm.setDestaddr(destaddr);
						inal.add(rm);
					}
					//cmpp_send_deliver_resp(con,cd.seq,cd.stat);
					break;
				case CMPP.CMPPE_ACTIVE_RESP :
					//System.out.println("active resp"+shortDateFormat.format(date));
					date = new Date();
					System.out.println(
						"recv active resp" + mediumDateFormat.format(date));
					break;
				default :
					break;
			}
		}
		catch (Exception e)
		{
			System.out.println(e.getMessage());
			e.printStackTrace();
			System.out.println("have a exception");
			try
			{
				sleep(10000);
				p.cmpp_logout(con);
				readPa();
				p.cmpp_connect_to_ismg("211.140.2.202", 7890, con);
				System.out.println("connect ok");
				p.cmpp_login(con, "(企业代码)", "(密码)", (byte) 1, 0x12, 0105121212);
				System.out.println("login ok");
				readPa();
			}
			catch (Exception ex)
			{
			}
		}
	}
}

⌨️ 快捷键说明

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