?? cmppmtsocketprocess.java
字號:
package com.pansonlu.cmpp;/** * <p>Title: CMPPMTReceiveThread 雙端口連接方式-MT的Socket連接</p> * <p>Description: 湖南移動短信網關通訊程序</p> * <p>用于建立與移動短信網關的Socket連接,同時收發登陸包,登陸響應包</p> * 該SOCKET連接在單連接時候,無用,不啟動 * 在雙連接時候,僅用來做法數據(Submit,SubmitResp等) * <p>Copyright: Copyright (c) 2008</p> * <p>Company: Sunrise tech ltd.</p> * @author pansonlu * @version 1.0 */import java.io.*;import java.net.*;import java.util.Vector;import com.pansonlu.common.util.*;public class CMPPMTSocketProcess { public Socket socket ; public DataInputStream inputStream; public DataOutputStream outputStream; public boolean isAvail = false; /** CMPPMTSocketProcess 的單例 **/ private static CMPPMTSocketProcess mtSocketProcess = null; public Vector vctMTMsg = new Vector(1,1); public CMPPMTSocketProcess() {// try{// System.out.println("new CMPPMTSocketProcess()" + isAvail);// if(!isAvail){// //連接// connectSMSG();// //登陸// loginSMSG();//// isAvail = true;// }// }// catch(Exception ex){// Debug.outError(ex);// } } /**取得CMPPMTSocketProcess的唯一實例 **/ public static CMPPMTSocketProcess getInstance(){ if(mtSocketProcess == null){ mtSocketProcess = new CMPPMTSocketProcess(); } return mtSocketProcess; } /** * 與短信網關建立連接 * @throws java.lang.Exception */ public void connectSMSG() throws Exception{ try{ Debug.outInfo("[CMPPMaster]"+PublicFunction.getFormatTime()+" "+CMPParameter.ServerIp +":"+ CMPParameter.MTServerPort); socket = new Socket(CMPParameter.ServerIp,CMPParameter.MTServerPort); inputStream = new DataInputStream(socket.getInputStream()); outputStream = new DataOutputStream(socket.getOutputStream()); loginSMSG(); } catch(Exception ex){ disclose(); throw ex; } } /** * 發送登陸包,接收響應包,登陸 * @throws java.lang.Exception */ public void loginSMSG() throws Exception{ try{ CMPP loginMsg = new CMPP(CMPP.CMPP_CONNECT); PublicFunction.send(outputStream,loginMsg.pack()); byte[] loginRespByte = PublicFunction.recv(inputStream); CMPP loginRespMsg = new CMPP(); loginRespMsg.parsePack(loginRespByte); if(loginRespMsg.Status == 0){ Debug.outInfo("[CMPPMaster]"+PublicFunction.getFormatTime()+" MT線程連接ISMG成功"); this.isAvail = true; } else{ Debug.outDebug("[CMPPMaster]MT線程連接ISMG失敗,失敗狀態:"+loginRespMsg.Status); } } catch(Exception ex){ throw ex; } } /** 斷開連接 **/ public void disclose(){ try{ if(this.inputStream !=null){ this.inputStream.close(); this.inputStream = null; } if(this.outputStream !=null){ this.outputStream.close(); this.outputStream = null; } if(this.socket !=null){ this.socket.close(); this.socket = null; } } catch(Exception ex){ Debug.outError(ex); } this.isAvail = false; }}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -