📄 cmppmoreceivethread.java
字号:
package com.pansonlu.cmpp;/** * <p>Title: CMPP Interface</p> * <p>Description: 湖南移动短信网关通讯程序</p> * <p>Copyright: Copyright (c) 2008</p> * <p>Company: Sunrise tech ltd.</p> * @author pansonlu * @version 1.0 */import java.io.*;import java.net.*;import com.pansonlu.common.util.*;public class CMPPMOReceiveThread extends Thread{ /** 该线程运行标志 true 在运行,false停止 **/ public static boolean isAvail = false; private static DataInputStream inputStream; private static DataOutputStream outputStream; /** 初始化构造器 * 使用CMPPMOSocketProcess唯一的实例的输入流和输出流**/ public CMPPMOReceiveThread() { inputStream = CMPPMOSocketProcess.getInstance().inputStream; outputStream = CMPPMOSocketProcess.getInstance().outputStream; isAvail = true; } public void run(){ Debug.outInfo("[CMPPMaster]"+PublicFunction.getFormatTime()+" MO连接("+CMPParameter.MOServerPort+")->接收线程启动 ..."); while(CMPPMOSocketProcess.getInstance().isAvail && isAvail){ try{ byte[] recByte = PublicFunction.recv(inputStream); CMPP deliverMsg = new CMPP(); deliverMsg.parsePack(recByte); switch(deliverMsg.Command_Id){ case CMPP.CMPP_DELIVER: //将Deliver消息保存在接收缓冲中,由CMPPMOSocketProcess的CMPPMODataSaveThread //线程将MO数据保存在数据库中 CMPPDBAccess.getInstance().vctMOData.addElement(deliverMsg); //回应Deliver消息 CMPP deliverRespMsg = new CMPP(CMPP.CMPP_DELIVER_RESP); deliverRespMsg.Msg_Id = deliverMsg.Msg_Id; deliverRespMsg.Result = 0; PublicFunction.send(outputStream, deliverRespMsg.pack()); break; case CMPP.CMPP_ACTIVE_TEST_RESP: //链路测试响应,无处理 break; case CMPP.CMPP_SUBMIT_RESP: //处理成功下发的响应信息 CMPPDBAccess.getInstance().dealProccessMsg(deliverMsg); break; } } catch(Exception ex){ destory(ex); } } // end while } /** 销毁线程 **/ public void destory(Exception ex){ if(ex !=null){ ex.printStackTrace(); Debug.outInfo("[CMPP]MO连接(收)线程异常停止,异常原因:" + ex.getMessage()); } else{ Debug.outInfo("[CMPP]MO连接(收)线程异常停止"); } CMPPMOSocketProcess.getInstance().disclose(); this.isAvail = false; }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -