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

📄 cncmain.java~5~

📁 cnc网通小灵通网关接口源码
💻 JAVA~5~
📖 第 1 页 / 共 2 页
字号:
//        Vector aaa= submitdb.queryResults(4);//        System.out.println("aaa.size:"+aaa.size());////        System.out.println("aaa--id-"+((Vector)aaa.get(0)).get(0)+" flag "+((Vector)aaa.get(0)).get(8));//        System.out.println("aaa--id-"+((Vector)aaa.get(1)).get(0)+" flag "+((Vector)aaa.get(1)).get(8));//        System.out.println("aaa--id-"+((Vector)aaa.get(2)).get(0)+" flag "+((Vector)aaa.get(2)).get(8));//        System.out.println("aaa--id-"+((Vector)aaa.get(3)).get(0)+" flag "+((Vector)aaa.get(3)).get(8));////        deliverdb.insertDBByID("13935180907","accept info","0");//        deliverdb.insertDBByID("13935180907","收到 消息!","0");//        System.out.println("end");  }  public static void Connect()  {    try    {      xsms.xsms_connect_to_ismg(ismghost, ismgport, conn);      xsms.xsms_login(conn,icpid, icpphone,ismghost,system_id,icpauth,system_type,interface_version,address_range);    }    catch (Exception e)    {      errorlog("连接小灵通短信网关:"+e);    }  }  public void destroy()  {    try    {      xsms.xsms_logout(conn);    }    catch (Exception e)    {      errorlog("退出系统:"+e);    }  }}/*与小灵通发送接受测试连接全部完成*/class ActiveTest extends cncMain implements Runnable{  ActiveTest() {}    SubmitDb submitdb = new SubmitDb();  public synchronized void run()  {    Thread thisThread = Thread.currentThread();    xsmse_submit submit = null;    while(true)    {      try      {        thisThread.sleep(50);        Vector pool = cncMain.messages;        if (!pool.isEmpty()) {            synchronized (pool) {            submit = (xsmse_submit) pool.elementAt(0);            pool.removeElementAt(0); //remove message            int seq = xsms.xsms_submit(conn, submit);          }        }else {            thisThread.sleep(500);            xsms.xsms_active_test(conn);        }        if(readPa(conn)==0)          feelog("目的手机="+submit.get_dst_addr()+"-源地址="+submit.get_src_addr()+"-内容="+submit.get_short_msg());      }      catch (IOException e)      {        errorlog("连接测试:"+e);        Connect();      }catch(InterruptedException e2){      }    }  }  private int readPa(conn_desc con) throws IOException//返回0是指发送成功  {    xsmse_result cr = null;    Date date = new Date();    int statuscode = 1;    try{      cr = xsms.readResPack(conn);    }catch(IOException e){      throw e;    }catch(Exception e2){    }    System.out.println("@@@@@@@@@@@@@@@@@@@@@@@@@@@222");        System.out.println("@@@@@@@@@@@cr.pack_id@@@@@@@@@222"+cr.pack_id);            System.out.println("@@@@@@@@@cr.pack_id@@@@@@@@@@@222");                System.out.println("@@@@@@@@@@@@@@@@@@@@@@@@@@@222");    switch(cr.pack_id)    {      case -2147483647:        xsmse_login_result cl = (xsmse_login_result)cr;        p(date.toString()+"登录----login resp----: STAT = " + ((xsmse_result) (cl)).stat);        statuscode=1;        break;      case -2147483646:        p("退出------------logout resp----------: STAT = " + cr.stat);        break;      case -2147483644:        xsmse_submit_result sr = (xsmse_submit_result)cr;        p(date.toString()+"发送------------submit resp----------: STAT = " + ((xsmse_result) (sr)).stat + " SEQ = " + sr.seq);        if(((xsmse_result) (sr)).stat==0){          statuscode = 0;          submitdb.updateHaveSent(sr.seq);        }        break;      case 5: // '\005'        p(date.toString()+"接收------------deliver---------: STAT = 0");        xsmse_deliver_result cd = (xsmse_deliver_result)cr;        Vector pool = cncMain.delivers;        synchronized (pool) {          pool.addElement(cd);        }        cd.printAllField();        try{        xsms.xsms_send_deliver_resp(con, cd.seq, ((xsmse_result) (cd)).stat,cd.media_type,cd.source_address,cd.destination_address);        }catch(OutOfBoundsException ex){        }        break;      case -2147483645:         xsmse_query_result qr = (xsmse_query_result)cr;         p("查询------------query resp-----------::" + qr.stat);         qr.printAllField();         break;      case -2147483640:        p(new Date().toString() + "取消---------cancel resp-----------: STAT = " + cr.stat);        break;      case -2147483627:        if(cr.stat!=0)          p(new Date().toString() + "连接响应---------active resp-----------: STAT " + cr.stat);        break;    }    return statuscode;  }}/*从移动接收到的消息放入cnc_deliver库*/class Deliver extends cncMain implements Runnable{  Deliver() {}  DeliverDb deliverdb = new DeliverDb();  public synchronized void run()  {    Vector pool = cncMain.delivers;    Thread thisThread = Thread.currentThread();    int deliverlength = 0;    String src_addr ;    String newshort_msg ;    String media_type ;    String service_type;    String dest_addr ;    byte esm_class ;    byte priority_flag ;    while(true)    {      try      {        thisThread.sleep(50);        synchronized (pool) {          if (!pool.isEmpty()) {            xsmse_deliver_result cd = (xsmse_deliver_result) pool.elementAt(0);            deliverlength = cd.sm_length;            src_addr = new String(cd.source_address).trim();            newshort_msg = cd.short_message_text;//如果此处是状态报告,需要再次解析xml串^_^            System.out.println("smlen:"+deliverlength);//            String short_msg="";//            if (cd.data_coding==0){//              short_msg=new String(newshort_msg,"ASCII").trim();//            }else if(cd.data_coding==1){//              short_msg = new String(newshort_msg,"GB2312").trim();//            }else if(cd.data_coding==2){//              short_msg = new String(newshort_msg,"UTF-8").trim();//            }else if(cd.data_coding==3){//              short_msg = new String(newshort_msg,"BIG5").trim();//            }            byte encoding = cd.data_coding;            media_type = cd.media_type;            service_type = cd.service_type;            dest_addr = cd.destination_address;            esm_class = cd.esm_class;            priority_flag = cd.priority_flag;            feelog("[消息]用户定制 手机号码=" + src_addr                   + "编码=" + encoding );            deliverdb.insertDBByID(cd.seq, media_type, service_type, src_addr, dest_addr, esm_class, priority_flag, newshort_msg,"0");            pool.removeElementAt(0); //remove message when success          }        }      }      catch (Exception e)      {        pool.removeElementAt(0);        errorlog("[错误]-提交数据库:"+e+deliverlength);      }    }  }}/*将cnc_submit库消息放入发送队列*/class SubmitFromDb extends cncMain implements Runnable{  SubmitFromDb() {}  SubmitDb submitdb = new SubmitDb();  public synchronized void run()  {    Thread thisThread = Thread.currentThread();    Vector submitsVec = new Vector(10);    cncParser parser = new cncParser();    while(true)    {      try      {        thisThread.sleep(50);        Vector pool = cncMain.messages;        System.out.println("messages.size-"+pool.size());        if (1-pool.size()>0) {          submitsVec = submitdb.queryResults(1-pool.size());          for(int i = 0;i<submitsVec.size();i++){            if (parser.getSubmit((Vector)submitsVec.elementAt(i),conn)){              System.out.println("from submitdb success"+i);            }            else{              System.out.println("from submitdb fail"+i);            }          }        }      }      catch (Exception e)      {        errorlog("取数据库测试:"+e);      }    }  }}

⌨️ 快捷键说明

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