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

📄 cmppactivethread.java

📁 移动短信网关接口源程序框架
💻 JAVA
字号:
package com.grima.smsp.communication.cmpp;

/**
 * <p>Title: mobileGateWay</p>
 * <p>Description: </p>
 * <p>Copyright: Copyright (c) 2004</p>
 * <p>Company: gramsoft</p>
 * @author lee
 * @version 1.0
 */

import mobilegw.cmpp.*;
import java.util.Vector;
import com.grima.smsp.communication.CommObjectBuffer;
import java.io.*;


public class CmppActiveThread implements Runnable {
  private conn_desc conn ;
  private CommObjectBuffer cBuffer;
  private CMPP cmpp = new CMPP();

  public CmppActiveThread(conn_desc conn,CommObjectBuffer cBuffer) {
    this.conn =  conn;
    this.cBuffer = cBuffer;
  }
  public void run() {
    Thread thisThread = Thread.currentThread();
    while(true) {
      try {
        thisThread.sleep(500);
        if (!cBuffer.isBufferEmpty()) {
          cmppe_submit submit = (cmppe_submit)cBuffer.getInstance();
          int seq = cmpp.cmpp_submit(conn,submit);
        }else {
          cmpp.cmpp_active_test(conn);
        }
        readPa(conn);
      }
      catch (Exception ex) {
        ex.printStackTrace(System.out);
        //try to connect
      }

    }
  }
  private void readPa(conn_desc con)
    {
        cmppe_result cmppeResult = null;
        try
        {
            cmppeResult = cmpp.readResPack(con);
            switch(cmppeResult.pack_id)
            {
            case -2147483648:
                System.out.println("get nack pack");
                break;

            case -2147483647:
                cmppe_login_result cl = (cmppe_login_result)cmppeResult;
                System.out.println("------------login resp----------: STAT = " + ((cmppe_result) (cl)).stat);
                break;

            case -2147483646:
                System.out.println("------------logout resp----------: STAT = " + cmppeResult.stat);
                break;

            case -2147483644:
                cmppe_submit_result sr = (cmppe_submit_result)cmppeResult;
                System.out.println("------------submit resp----------: STAT = " + ((cmppe_result) (sr)).stat + " SEQ = " + sr.seq);
                int iSeq = sr.seq;
                int iStat = sr.stat;
                byte[] msgId = sr.msg_id;
                if (iStat == 0) {
                  //发送成功,更新数据库
                }else {
                  byte failUserCount = sr.us_count;
                  cmppe_us_user[] failUserList = sr.us_user;
                  //发送失败,更新数据库,or 重发
                }
                break;

            case 5: // '\005'
                System.out.println("------------deliver---------: STAT = 0");
                cmppe_deliver_result cd = (cmppe_deliver_result)cmppeResult;
                cmpp.cmpp_send_deliver_resp(con, cd.seq, ((cmppe_result) (cd)).stat);
                //判断是普通短信,还是状态报告,进行不同的数据库操作

                break;

            case -2147483641:
                System.out.println("---------cancel-----------: STAT = " + cmppeResult.stat);
                break;

            case -2147483640:
                System.out.println("---------active resp-----------: STAT " + cmppeResult.stat);
                break;

            default:
                System.out.println("---------Error packet-----------");
                break;
            }
        }
        catch(Exception e)
        {
            System.out.println(e.getMessage());
            e.printStackTrace();
            System.out.println("have a exception");
            try
            {
                System.in.read();
            }
            catch(Exception _ex) { }
        }
    }
}

⌨️ 快捷键说明

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