📄 cncmain.java~5~
字号:
// 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 + -