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

📄 recvthread.java

📁 联通短信平台
💻 JAVA
字号:
// Decompiled by Jad v1.5.7g. Copyright 2000 Pavel Kouznetsov.
// Jad home page: http://www.geocities.com/SiliconValley/Bridge/8617/jad.html
// Decompiler options: packimports(3) fieldsfirst ansi 
// Source File Name:   recvThread.java

import com.aspire.cmppApi.*;
import java.io.*;
import java.util.Properties;
import java.text.*;

public class recvThread extends Thread
{
	
	static int totals = 0;
	static long nTimeOut = 999999;
	message mess;
	Apis api;
	RecCCMPPPacket packet;
	int submit_reps;
	int query_reps;
	int active_reps;
	int active_reqs;
	int delivers;
	int receipts;
	String sMessageContent;
	String usMsgId;
	String sSrcAddr;//dinggou
	SendMessage SendMessage1;
	
	/*
	 public recvThread(Apis apis)
	 {
	 submit_reps = 0;
	 query_reps = 0;
	 active_reps = 0;
	 active_reqs = 0;
	 delivers = 0;
	 receipts = 0;
	 api = apis;
	 totals = totals;
	 }
	 */
	public recvThread(message mess)
	{
		submit_reps = 0;
		query_reps = 0;
		active_reps = 0;
		active_reqs = 0;
		delivers = 0;
		receipts = 0;
		this.mess = mess;
		api = mess.cm;
		totals = totals;
		 SendMessage1 = new SendMessage();
	}
	
	private void getParam()
	{
		String sfileName = "c:/test/test.ini";
		Properties prop = new Properties();
		try
		{
			prop.load(new FileInputStream(sfileName));
		}
		catch(IOException ioe)
		{
			System.out.println(" fail to load test.ini file ".concat(String.valueOf(String.valueOf(sfileName))));
			SendMessage1.SendMessage(" 获的配置文件test.ini失败 ".concat(String.valueOf(String.valueOf(sfileName))));
		}
		nTimeOut = Integer.parseInt(prop.getProperty("TimeOut", "1000"));
	}

	public void run()
	{
	
		System.out.println("Read Packet Thread is started.....");
		getParam();
		
		packet = new RecCCMPPPacket();
		int i = 0;
		int g=0;
		do
		{
			
			i = api.nCMPP_RecvPacket(packet);
			if(i == -6)
			{
				
				i = mess.sendConnect();
				g=0;
				SendMessage1.SendMessage("严重警告:接收线程与短信网关断开!!");
				//if(i >= 0)
				//{
					
				//try
				//	{
					
				//	recvThread2 recvthread2 = new recvThread2(mess);
				//	recvthread2.start();
					
				
				
				//	do
				//	{
						
				//this.currentThread().sleep(6000L);
				//	System.out.println("等待线程2结束次数"+g);
				//	g++;
				//}
				//	while(recvthread2.isAlive());
				//}
				//catch(Exception ee)
				//{
				//}
					
				//System.out.println("线程1重新启动");
				//	}  
			
			}
			if(i==-1)
			{
				try
				{
                   //  System.out.println("接收线程无数据切换!");
					this.sleep(1000);
				}
				catch(Exception ee)
				{
                  System.out.println("接收线程休眠失败!");
					SendMessage1.SendMessage("接收线程休眠失败! ");
				}
			}
			if(i >= 0)
			{
				System.out.println("Receive Thread1 started...");

				int j = packet.nCmdId;
               
				switch(j)
				{
					case  com.aspire.cmppApi.cmppPacket.CMPP_Deliver: // '\005'
						int sequence = 0;
						if(i == 0)
						{
							delivers++;
							System.out.println("Deliver number:" + delivers);
							System.out.println("packet.recDeliver.nSeqId:" + packet.recDeliver.nSeqId);
							System.out.println("packet.recDeliver.usMsgId:" + packet.recDeliver.usMsgId);
							System.out.println("packet.recDeliver.sDstAddr:" + packet.recDeliver.sDstAddr);
							System.out.println("packet.recDeliver.sServiceId:" + packet.recDeliver.sServiceId);
							System.out.println("packet.recDeliver.ucTpPid:" + packet.recDeliver.ucTpPid);
							System.out.println("packet.recDeliver.ucTpUdhi:" + packet.recDeliver.ucTpUdhi);
							System.out.println("packet.recDeliver.ucMsgFmt:" + packet.recDeliver.ucMsgFmt);
							System.out.println("packet.recDeliver.sSrcAddr:" + packet.recDeliver.sSrcAddr);
							System.out.println("packet.recDeliver.ucRegister:" + packet.recDeliver.ucRegister);
							System.out.println("packet.recDeliver.ucMsgLen:" + packet.recDeliver.ucMsgLen);
							try
							{
								int red =mess.sendDeliverRep(packet.recDeliver.usMsgId,packet.recDeliver.nSeqId);//清理状态包
								if(red>=0)
									System.out.println("清理状态包,包标志:" + Long.toString(packet.recDeliver.usMsgId)+packet.recDeliver.nSeqId);
							}
							catch(Exception es)
							{
								SendMessage1.SendMessage("接收线程发送sendDeliverRep失败!"+es.getMessage());
							}
							
							
								
								
							try
							{
								if(packet.recDeliver.ucMsgFmt==0 || packet.recDeliver.ucMsgFmt==15)
								{
									System.out.println("packet.recDeliver.usMsgContent:" +String.valueOf(String.valueOf(new String(packet.recDeliver.usMsgContent))));
								}
								else
								{
									if(packet.recDeliver.ucMsgFmt==8)
									{
										byte[] q =packet.recDeliver.usMsgContent;
										byte[] w=new byte[q.length];
										//byte[] w = s.getBytes("GB2321");
										//byte[] e = s.getBytes("GBK");
										//byte[] r = s.getBytes("ASCII");
										for(int a=0;a<q.length;a+=2)
										{
											w[a]=q[a+1];
											w[a+1]=q[a];
			
									
				
										}
										System.out.println("packet.recDeliver.usMsgContent:" +new String(w,"Unicode"));
									}
								}
							
							}
							catch(Exception ee)
							{
								System.out.println("不支持短信编码格式!!"+packet.recDeliver.ucMsgFmt);
								SendMessage1.SendMessage("接收线程不支持短信编码格式!!"+packet.recDeliver.ucMsgFmt+ee.getMessage());
							}
							
							System.out.println("packet.recDeliver.usReserve:" + packet.recDeliver.usReserve);

							int nSeqId =(int)packet.recDeliver.nSeqId;
							usMsgId = Long.toString(packet.recDeliver.usMsgId);
							int ucRegister = (int)packet.recDeliver.ucRegister;
							int ucMsgLen =(int)packet.recDeliver.ucMsgLen;
							if(packet.recDeliver.ucMsgFmt==0 || packet.recDeliver.ucMsgFmt==15)
								sMessageContent = String.valueOf(String.valueOf(new String(packet.recDeliver.usMsgContent)));
							else
							{
								if(packet.recDeliver.ucMsgFmt==8)
									try
									{
										byte[] q =packet.recDeliver.usMsgContent;
										byte[] w=new byte[q.length];
										//byte[] w = s.getBytes("GB2321");
										//byte[] e = s.getBytes("GBK");
										//byte[] r = s.getBytes("ASCII");
										for(int a=0;a<q.length;a+=2)
										{
											w[a]=q[a+1];
											w[a+1]=q[a];
			
									
				
										}
										sMessageContent =new String(w,"Unicode");
									}
									catch(Exception ex)
									{
										System.out.println("不支持短信编码格式!!");
										SendMessage1.SendMessage("接收线程不支持短信编码格式!!"+ex.getMessage());
									}
							}
							String sDstAddr = String.valueOf(String.valueOf(packet.recDeliver.sDstAddr));
							String sServiceId = String.valueOf(String.valueOf(packet.recDeliver.sServiceId));
							sSrcAddr = String.valueOf(String.valueOf(packet.recDeliver.sSrcAddr));
							boolean b; //0001 1 345 8513933056056 TBY 1 
							if(sSrcAddr.Substring(0,5).Equals("01862"))
							{
								//int totalLength = sMessageContent.length();
								int lastTab =sMessageContent.LastIndexOf(" ");
								int telEnd =sMessageContent.LastIndexOf(" ",lastTab-1);
								int telStart =sMessageContent.IndexOf(" ",8);
								int firstTab =sMessageContent.IndexOf(" ");
								int sencondTab = sMessageContent.IndexOf(" ",6);
								//int d =sMessageContent.IndexOf("8613");
								usMsgId =sMessageContent.substring(sencondTab+1,telStart);
								sSrcAddr =sMessageContent.substring(telStart+1,telEnd);
								sMessageContent =sMessageContent.substring(firstTab+1,sencondTab);
							
							}
							try
							{
								database.OperDatabase opdata  =new database.OperDatabase();
								b =opdata.InsertMO(nSeqId,usMsgId,sDstAddr,sServiceId,sSrcAddr,ucRegister,ucMsgLen,sMessageContent);
								if(b == false)
								{
									System.out.println("插入数据库MO失败");
								
								}
                               
							}
							catch(Exception ef)
							{
							SendMessage1.SendMessage("插入数据库MO失败");
							}
							      
						//	mess.sendSubmit();
							
						}
						if(i == 1)
						{
							receipts++;
							System.out.println("Receipt nember:" + receipts);
							System.out.println("packet.recReceipt.nSeqId:" + packet.recReceipt.nSeqId);
							System.out.println("packet.recReceipt.usMsgId:" + packet.recReceipt.usMsgId);
							System.out.println("packet.recReceipt.sStat:" + packet.recReceipt.sStat);
							System.out.println("packet.recReceipt.sSubmitTime:" + packet.recReceipt.sSubmitTime);
							System.out.println("packet.recReceipt.sDoneTime:" + packet.recReceipt.sDoneTime);
							System.out.println("packet.recReceipt.sDstAddr:" + packet.recReceipt.sDstAddr);
							System.out.println("packet.recReceipt.nSmscSeqId:" + packet.recReceipt.nSmscSeqId);
							int red = mess.sendDeliverRep(packet.recReceipt.usMsgId,packet.recDeliver.nSeqId);
							if(red>=0)
								System.out.println("清理状态包,包标志:" + Long.toString(packet.recDeliver.usMsgId)+packet.recDeliver.nSeqId);
								
						}
						
						break;

					case com.aspire.cmppApi.cmppPacket.CMPP_Submit_REP: 
						System.out.println("读CMPP_Submit_REP.....");
						submit_reps++;
						System.out.println("读CMPP_Submit_REP NUmber:" + submit_reps);
						System.out.println("packet.recSubmitRep.nSeqId:" + packet.recSubmitRep.nSeqId);
						System.out.println("packet.recSubmitRep.usMsgId:" + packet.recSubmitRep.usMsgId);
						System.out.println("packet.recSubmitRep.ucResult:" + packet.recSubmitRep.ucResult);
						break;

					case com.aspire.cmppApi.cmppPacket.CMPP_Active_Test: // '\b'
						active_reqs++;
						System.out.println("读CMPP_Active_Test num:" + active_reqs);
						System.out.println("packet.recActiveTest.nSeqId:" + packet.recActiveTest.nSeqId);
						break;

					case com.aspire.cmppApi.cmppPacket.CMPP_Active_Test_REP: 
						active_reps++;
						System.out.println("读CMPP_Active_Test_REP num:" + active_reps);
						System.out.println("packet.recActiveTestRep.nSeqId:" + packet.recActiveTestRep.nSeqId);
						System.out.println("packet.recActiveTestRep.ucSuccId:" + packet.recActiveTestRep.ucSuccId);
						break;

					case  com.aspire.cmppApi.cmppPacket.CMPP_Query_REP:
						query_reps++;
						System.out.println("读CMPP_Query_REP times:" + query_reps);
						RecCQueryRep reccqueryrep = new RecCQueryRep();
						System.out.println("packet.recQueryRep.nSeqId:" + packet.recQueryRep.nSeqId);
						System.out.println("packet.recQueryRep.sTime:" + packet.recQueryRep.sTime);
						System.out.println("packet.recQueryRep.ucQueryType:" + packet.recQueryRep.ucQueryType);
						System.out.println("packet.recQueryRep.sQueryCode:" + packet.recQueryRep.sQueryCode);
						System.out.println("packet.recQueryRep.nMtTlMsg:" + packet.recQueryRep.nMtTlMsg);
						System.out.println("packet.recQueryRep.nMtTlUsr:" + packet.recQueryRep.nMtTlUsr);
						System.out.println("packet.recQueryRep.nMtScs:" + packet.recQueryRep.nMtScs);
						System.out.println("packet.recQueryRep.nMtWt:" + packet.recQueryRep.nMtWt);
						System.out.println("packet.recQueryRep.nMtFl:" + packet.recQueryRep.nMtFl);
						System.out.println("packet.recQueryRep.nMoScs:" + packet.recQueryRep.nMoScs);
						System.out.println("packet.recQueryRep.nMoWt:" + packet.recQueryRep.nMoWt);
						System.out.println("packet.recQueryRep.nMoFl:" + packet.recQueryRep.nMoFl);
						break;

					case  com.aspire.cmppApi.cmppPacket.CMPP_Cancel_REP:
						System.out.println("读CMPP_Cancel_REP.....");
						RecCCancelRep recccancelrep = new RecCCancelRep();
						System.out.println("packet.recCancelRep.nSeqId:" + packet.recCancelRep.nSeqId);
						System.out.println("packet.recCancelRep.ucSuccId:" + packet.recCancelRep.ucSuccId);
						break;

					case com.aspire.cmppApi.cmppPacket.CMPP_Terminate: // '\002'
						System.out.println("读CMPP_Terminate.....");
						System.out.println("packet.recTerminate.nSeqId:" + packet.recTerminate.nSeqId);
						break;

					case com.aspire.cmppApi.cmppPacket.CMPP_Terminate_REP:
						System.out.println("读CMPP_Terminate_REP.....");
						System.out.println("packet.recTerminateRep.nSeqId:" + i);
						break;

					default:
						System.out.println("Unknown packet:" + j);
					
						break;
				}
			}
		} while(true);
	}

}

⌨️ 快捷键说明

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