亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? smgp.java

?? 短信網(wǎng)關(guān)SMGP協(xié)議JAVA語言API開發(fā)包源代碼
?? JAVA
字號:
package com.ut.smgp.api;

import com.ut.smgp.api.logic.*;
import com.ut.smgp.api.structure.*;
import com.ut.smgp.api.configure.*;
import com.ut.smgp.api.thread.*;

import java.util.*;
import java.io.*;

import java.net.Socket;
public class SMGP {
  private initStruct init=new initStruct();   //收發(fā)或接收初始化數(shù)據(jù)
  private initStruct initSend=new initStruct();   //發(fā)送初始化數(shù)據(jù)
  private socketStruct con=new socketStruct();  //接收或收發(fā)端口
  private socketStruct conSend=new socketStruct();  //發(fā)送端口
  private smgpLogic smgp=new smgpLogic();
  private  activeTestThread active=null;   //0:接收或收發(fā)activeTest;  1:發(fā)送activeTest
  private  activeTestThread activeSend=null;
  private  deliverThread deliver=null;
  private deliverVector deliverQueue=new deliverVector();
  private String deliverLock="0";//記錄當前接收端口的狀態(tài),0-網(wǎng)絡(luò)正常,其余網(wǎng)絡(luò)錯誤
  //private Vector msgQueue=new Vector();  //消息接收隊列
  //private Vector reportQueue=new Vector();  //狀態(tài)報告接收隊列
  public SMGP() {
  }
  /********************************************************
   * 設(shè)置通訊連接
   *
   */
  public void setSocket(socketStruct socket)
  {
    this.con=socket;
  }

  /**********************************************************
   * 系統(tǒng)運行參數(shù)初始化
   * @param fileName 配置文件的位置
   * @return int  0 初始化正確; 其余 初始化失敗代碼
   */
  public int initSMGPAPI()
  {
    return initSMGPAPI("../config/smgpc.ini");
  }
  public int initSMGPAPI(String initFile)
  {
    init=smgp.initApi(initFile);
    if(init==null)
    {
        init=new initStruct();
        return 1;
    }
    initSend.init(init); //初始化發(fā)送初始結(jié)構(gòu)
    initSend.setLoginMode(0);
    return 0;
  }

  /*********************************************************************
   *
   * 根據(jù)用戶的配置登錄系統(tǒng)
   *
   * activeMode :  1:send  2:receive
   *
   */
  private int login(int activeMode)
  {
    int result=0;



  /*  try{
     if(deliver!=null) deliver.join();
     if(activeSend!=null) activeSend.join();
     if(active!=null) active.join();
    }catch(InterruptedException e){System.out.println("SMGP.login:"+e);}*/

    if(init.getServiceMode()==1)
    {//收發(fā)公用收發(fā)類型接口
      init.setLoginMode(2); //設(shè)置收發(fā)登錄模式
      try{
       con.socket = new Socket(init.getServerIp(), init.getServerPort());
       con.socket.setSoTimeout(init.getRequestTimeOut());
      }catch(Exception e)
      {System.out.println(e);
        return configure.ERROR_CONNECT_FAILED;
      }
       result=smgp.login(init,con);
      if(result==0)
      {//登錄成功
        //建立active_test進程
        if(active!=null) active.setCtl(1);//中止進程
        try{
           if(active!=null) active.join();
        }catch(InterruptedException e){System.out.println("SMGP.login:"+e);}
        active = new activeTestThread(con, init,deliverQueue,2);
        active.start();
        //{//建立接收信息的進程
        if(deliver!=null) deliver.setCtl(1);//中止進程
        try{
           if(deliver!=null) deliver.join();
        }catch(InterruptedException e){System.out.println("SMGP.login:"+e);}
         deliver=new deliverThread(active,init,deliverQueue,deliverLock);
         deliver.start();
       }
    }
    else
    {// =2 或其它為“收發(fā)分別用獨立的接收接口和發(fā)送接口”
      if(activeMode==1)
      {//建立發(fā)送端口
        initSend.setLoginMode(0); //設(shè)置發(fā)送登錄模式
        try{
          conSend.socket = new Socket(initSend.getServerIp(), initSend.getServerPort());
          conSend.socket.setSoTimeout(initSend.getRequestTimeOut());
        }catch(Exception e)
        {
          System.out.println(e);
          return configure.ERROR_CONNECT_FAILED;
        }
        result=smgp.login(initSend,conSend);
        if(result==0)
        {//登錄成功
          //建立active_test進程
          if(activeSend!=null) activeSend.setCtl(1);//中止進程
          try{
            if(activeSend!=null) activeSend.join();
          }catch(InterruptedException e){System.out.println("SMGP.login:"+e);}
          activeSend = new activeTestThread(conSend, initSend,deliverQueue,0);
          activeSend.start();
         }
      }
      else if(activeMode==2)
      {//建立接收端口
        init.setLoginMode(1); //設(shè)置接收登錄模式
        try{
          con.socket = new Socket(init.getServerIp(), init.getServerPort());
          con.socket.setSoTimeout(init.getRequestTimeOut());
       }catch(Exception e)
       {
         System.out.println(e);
         return configure.ERROR_CONNECT_FAILED;
       }
       result=smgp.login(init,con);
       if(result==0)
       {//登錄成功
         //建立active_test進程
         if(active!=null) active.setCtl(1);//中止進程
         try{
            if(active!=null) active.join();
         }catch(InterruptedException e){System.out.println("SMGP.login:"+e);}
         active = new activeTestThread(con, init,deliverQueue,1);
         active.start();
         //{//建立接收信息的進程
         if(deliver!=null) deliver.setCtl(1);//中止進程
         try{
            if(deliver!=null) deliver.join();
         }catch(InterruptedException e){System.out.println("SMGP.login:"+e);}
          deliver=new deliverThread(active,init,deliverQueue,deliverLock);
          deliver.start();
        }
       }
    }

    return result;
  }

  /********************************************************************
   *
   * 發(fā)送單條信息
   *
   */
  public int SMGPSendSingle(submitStruct submit)
  {
     //判斷連接是否建立,若沒有建立則登錄
     int result=0;
     //if(init.getServiceMode()==1&&(con.socket==null||con.socket.isClosed()))
     if(init.getServiceMode()==1&&con.socket==null)
     {
       result=login(0);
       if (result != 0) {
         con.socket = null;
         return result;
       }
     }
     if(initSend.getServiceMode()==2&&conSend.socket==null)
     {
       result=login(1);
       if (result != 0) {
         conSend.socket = null;
         return result;
       }
     }
    if(init.getServiceMode()!=1&&init.getServiceMode()!=2) return 1;

    if(init.getServiceMode()==1)
    {
      con = active.getConnection();
      result=smgp.sendSingle(init,con,submit,deliverQueue,2);
      if(result==configure.ERROR_CONNECT_FAILED)
      {//重新登錄
        result=login(0);
        if(result!=0)
         {
           con.socket=null;
           return result;
         }
         active.setSocket(con);
         smgp.sendSingle(init,con,submit,deliverQueue,2); //send again
      }
    }
    else //if(init.getServiceMode()==2)
    {
      conSend = activeSend.getConnection();
      result=smgp.sendSingle(initSend,conSend,submit,deliverQueue,0);
      if(result==configure.ERROR_CONNECT_FAILED)
      {//重新登錄
        result=login(1);
        if(result!=0)
        {
          conSend.socket=null;
          return result;
        }
         activeSend.setSocket(conSend);
        result=smgp.sendSingle(initSend,conSend,submit,deliverQueue,0); //send again
      }
    }
    return result;
  }

  /********************************************************************
   *
   * 群發(fā)信息
   *
   */
  public int[] SMGPSendMulti(submitStruct[] submit,int timeout)
  {
    //判斷連接是否建立,若沒有建立則登錄
    if(submit==null)
      return null;
    int[] allResult=new int[submit.length];
    int result=0;
    if(init.getServiceMode()==1&&(con.socket==null))
    {
      result=login(0);
      for(int i=0;i<allResult.length;i++)
       allResult[i]=result;
      if (result != 0) {
        con.socket = null;
        return allResult;
      }
    }
    if(initSend.getServiceMode()==2&&(conSend.socket==null))
    {
      result=login(1);
      for(int i=0;i<allResult.length;i++)
       allResult[i]=result;
      if (result != 0) {
        conSend.socket = null;
        return allResult;
      }
    }

   if(init.getServiceMode()!=1&&init.getServiceMode()!=2)
     for(int i=0;i<allResult.length;i++)
       allResult[i]=1;

   if(init.getServiceMode()==1)
   {
     con = active.getConnection();
     allResult=smgp.sendMulti(init,con,submit,deliverQueue,timeout,2);
     if(result==configure.ERROR_CONNECT_FAILED)
     {//重新登錄
       result=login(0);
       for(int i=0;i<allResult.length;i++)
       allResult[i]=result;
       if(result!=0)
        {
          con.socket=null;
          return allResult;
        }
        active.setSocket(con);
        smgp.sendMulti(init,con,submit,deliverQueue,timeout,2); //send again
     }
   }
   else //if(init.getServiceMode()==2)
   {
     conSend = activeSend.getConnection();
     allResult=smgp.sendMulti(initSend,conSend,submit,deliverQueue,timeout,0);
     if(result==configure.ERROR_CONNECT_FAILED)
     {//重新登錄
       result=login(1);
       for(int i=0;i<allResult.length;i++)
       allResult[i]=result;
       if(result!=0)
       {
         conSend.socket=null;
         return allResult;
       }
        activeSend.setSocket(conSend);
       allResult=smgp.sendMulti(initSend,conSend,submit,deliverQueue,timeout,0); //send again
     }
   }
   return allResult;
  }

  /*****************************************************************************
   *
   * 獲取接收隊列的短消息
   *
   */

 public deliverMsg SMGPDeliver(int timeout)
 {
   //判斷連接是否建立,若沒有建立則登錄
     int result=0;
     deliverMsg msg=new deliverMsg();
     if(init.getServiceMode()==1&&this.con.socket==null)
     {
       result=login(0);
       if ( result!= 0)
       {
         msg.setResult(result);
         msg.setDeliver(new deliverStruct[0]);
         return msg;
       }
     }

     if(init.getServiceMode()!=1&&this.con.socket==null)
     {
       result=login(2);
       if ( result!= 0)
       {
         msg.setResult(result);
         msg.setDeliver(new deliverStruct[0]);
         return msg;
       }
     }


     if(con.socket==null)
     {
       result=configure.ERROR_CONNECT_FAILED;
       msg.setResult(result);
        msg.setDeliver(new deliverStruct[0]);
        return msg;
      // return result;
     }

   deliverStruct[] deliverLine;
   synchronized(deliverQueue)
   {//接收數(shù)據(jù)
       deliverLine = new deliverStruct[deliverQueue.size()];
       for (int i = 0; i < deliverLine.length; i++) {
         deliverLine[i] = new deliverStruct();
         deliverLine[i] = deliverQueue.get(i);
       }
       deliverQueue.clear();
   }
   if(deliverLine.length==0)
   { //沒有數(shù)據(jù),等待接收
     deliver.setTimeOut(timeout);
     deliver.setCtl(3);//告訴deliver,這是用戶喚醒的,不允許再度睡眠,以避免死鎖
     deliver.interrupt(); //再次啟動
     synchronized(deliverLock)
     {//等待用戶設(shè)定的時間
       result=Integer.parseInt(deliverLock);//獲取接收狀態(tài)
       deliverLock = "0";
     }
     deliver.setCtl(2);//告訴deliver,網(wǎng)絡(luò)不通,可以睡覺了
     synchronized(deliverQueue)
     { //再次接收數(shù)據(jù)
         deliverLine = new deliverStruct[deliverQueue.size()];
         for (int i = 0; i < deliverLine.length; i++) {
           deliverLine[i] = new deliverStruct();
           deliverLine[i] = deliverQueue.get(i);
         }
         deliverQueue.clear();
     }
   }
  /* timeout=1000000000;
   try{
       if (deliverLine.length == 0) {
       deliver.setDeliv(Thread.currentThread());
       if(timeout!=0)
         Thread.sleep(timeout);
       else
         Thread.yield();
     }
    }
    catch(InterruptedException interruptedexception)
     {
        System.err.println("Failed to sleep: " + interruptedexception);
     }*/
   //return result;
   msg.setResult(result);
   msg.setDeliver(deliverLine);
    return msg;

  // return deliverLine;
 }
/* private int getDeliverLock(int i)
 {
   //int i=Integer.parseInt(deliverLock);
   switch(i)
    {
      case 0:
        return 0;
      case configure.ERROR_CONNECT_FAILED:
        return configure.ERROR_CONNECT_FAILED;
      case configure.ERROR_RECEIVE_FAILED:
        return configure.ERROR_RECEIVE_FAILED;
      case configure.ERROR_LOGIN_FAILED:
        return configure.ERROR_LOGIN_FAILED;
   }
   return configure.ERROR_RECEIVE_FAILED;
 }*/
 /********************************************************************************
  *
  * 斷開連接
  *
  */
 public int SMGPDisconnect()
 {
   int result=0;
   if(init.getServiceMode()==1)
   {
     smgp.exit(con, init, deliverQueue, 2);
   }
   if(init.getServiceMode()==2)
   {
     smgp.exit(con, init, deliverQueue,1);
     smgp.exit(conSend, initSend, deliverQueue,0);
   }
     if(deliver!=null) deliver.setCtl(1);//中止進程
     if(active!=null) active.setCtl(1);//中止進程
     if(activeSend!=null) activeSend.setCtl(1);//中止進程


     try{
      if(deliver!=null&&deliver.isAlive()) deliver.join();
     }catch(InterruptedException e){System.out.println("SMGP.SMGPDisconnect:"+e);}

     try{
       if (activeSend != null&&activeSend.isAlive())
         activeSend.join();
     }catch(InterruptedException e)
     {System.out.println("SMGP.SMGPDisconnect:"+e);}

      try{
        if(active!=null&&active.isAlive()) active.join();
      }catch(InterruptedException e)
      {System.out.println("SMGP.SMGPDisconnect:"+e);}

      try{
        if(con.socket!=null)
         {
           con.socket.close();
           con.socket=null;
         }
      }catch(IOException e)
      {System.out.println("SMGP.SMGPDisconnect"+e);}

      try{
        if (conSend.socket != null)
          conSend.socket.close();
          conSend.socket=null;
      }catch(IOException e)
      {System.out.println("SMGP.SMGPDisconnect"+e);}

   return result;
 }
 /*********************************************************************************
  *
  * 發(fā)送active
  *
  */
 public int SMGPActiveTest()
 {
   if(con.socket!=null)  //測試接收或收發(fā)端口
     return smgp.activeTest(con,init,deliverQueue,2);
   else if(conSend.socket!=null)  //測試發(fā)送端口
     return smgp.activeTest(conSend,initSend,deliverQueue,0);
   else  //無可用端口,測試失敗
     return 1;
 }


  public static void main(String[] args) throws InterruptedException
  {
     SMGP smgp=new SMGP();
     smgp.initSMGPAPI("e:\\smgpc.ini");
  }

}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品成人免费 | 在线观看视频91| 日韩精品一级中文字幕精品视频免费观看| 欧美成人精品福利| 欧美三级日本三级少妇99| 国内精品伊人久久久久av影院 | 99久久国产综合色|国产精品| 视频一区免费在线观看| 亚洲人成亚洲人成在线观看图片| 精品国产自在久精品国产| 欧美色网一区二区| 波多野结衣视频一区| 国产在线精品一区在线观看麻豆| 亚洲国产三级在线| 亚洲视频一二三区| 国产视频不卡一区| 久久午夜电影网| 欧美精品视频www在线观看| 色94色欧美sute亚洲线路一ni| 国产成人亚洲综合a∨婷婷| 久久精品国产成人一区二区三区| 亚洲成人精品影院| 亚洲精品国产高清久久伦理二区| 国产精品嫩草久久久久| 国产欧美中文在线| 国产偷v国产偷v亚洲高清| 精品国产免费久久| 欧美成人三级电影在线| 欧美精品aⅴ在线视频| 欧美午夜电影一区| 欧美性一二三区| 欧美性猛交xxxxxx富婆| 在线视频国内一区二区| 色嗨嗨av一区二区三区| 欧美中文一区二区三区| 欧美午夜一区二区| 欧美日韩专区在线| 7777精品久久久大香线蕉| 欧美日韩成人一区二区| 宅男噜噜噜66一区二区66| 欧美一级精品大片| 精品国产凹凸成av人网站| 26uuu亚洲综合色| 国产欧美1区2区3区| 亚洲国产精品av| 亚洲欧洲日韩av| 亚洲欧美日韩一区二区三区在线观看| 亚洲人精品午夜| 亚洲一区中文日韩| 亚洲bt欧美bt精品| 麻豆一区二区99久久久久| 国内成人精品2018免费看| 国产一区日韩二区欧美三区| 国产不卡免费视频| 99久精品国产| 欧美三级乱人伦电影| 日韩三级精品电影久久久| ww亚洲ww在线观看国产| 欧美激情一区二区三区不卡| 亚洲猫色日本管| 日本视频中文字幕一区二区三区| 老司机精品视频导航| 丁香一区二区三区| 欧美综合在线视频| 日韩欧美电影一区| 国产女主播视频一区二区| 亚洲另类一区二区| 美女视频黄久久| 成人永久看片免费视频天堂| 色综合久久天天| 欧美一区欧美二区| 日本一区二区成人| 亚洲一区二区三区国产| 精品一区二区三区日韩| 成人app下载| 欧美喷潮久久久xxxxx| 久久精品视频网| 一区二区三区产品免费精品久久75 | 精品日本一线二线三线不卡 | 亚洲老司机在线| 久久日韩精品一区二区五区| 欧美亚州韩日在线看免费版国语版| 69堂精品视频| 1024精品合集| 久久精品国产免费| 国产成人在线色| 久久久久久久久久久99999| 亚洲小少妇裸体bbw| 亚洲另类春色校园小说| 亚洲午夜激情av| 日韩国产欧美三级| 理论电影国产精品| 国产麻豆精品视频| 99久久99久久精品免费观看| 欧美在线free| 日韩欧美激情四射| 久久精品水蜜桃av综合天堂| 亚洲欧美在线高清| 午夜影视日本亚洲欧洲精品| 蜜臀精品一区二区三区在线观看 | 日韩影院免费视频| 极品少妇一区二区| eeuss鲁一区二区三区| 欧美性感一类影片在线播放| 日韩欧美激情四射| 亚洲视频狠狠干| 琪琪久久久久日韩精品| 粉嫩av一区二区三区| 日本高清成人免费播放| 日韩一级黄色大片| 国产精品乱码久久久久久| 亚洲国产精品影院| 国产精品91xxx| 欧美日精品一区视频| 久久丝袜美腿综合| 亚洲一区日韩精品中文字幕| 日本欧美肥老太交大片| 成人不卡免费av| 欧美日本一区二区三区四区 | 成人福利视频网站| 欧美私人免费视频| 精品国产青草久久久久福利| 成人欧美一区二区三区小说| 日韩av一区二区三区四区| 不卡一二三区首页| 欧美xingq一区二区| 一区二区三区四区视频精品免费 | 亚洲成a人v欧美综合天堂| 国产酒店精品激情| 91精品一区二区三区久久久久久 | 欧美人xxxx| 欧美激情在线免费观看| 日本最新不卡在线| 一本大道久久a久久综合婷婷| 26uuu精品一区二区在线观看| 亚洲女人小视频在线观看| 国产综合久久久久久鬼色| 欧美日韩一级片网站| 国产精品激情偷乱一区二区∴| 日本 国产 欧美色综合| 99vv1com这只有精品| 久久久久国产一区二区三区四区| 午夜欧美2019年伦理| av网站免费线看精品| 久久久久久99久久久精品网站| 日韩国产欧美三级| 欧美日韩在线精品一区二区三区激情| 国产欧美日韩三级| 韩国午夜理伦三级不卡影院| 制服丝袜亚洲精品中文字幕| 亚洲日本青草视频在线怡红院| 国产91丝袜在线播放| 久久日韩粉嫩一区二区三区| 免费在线观看精品| 欧美一级片在线| 日韩精品91亚洲二区在线观看| 欧美亚洲丝袜传媒另类| 亚洲男人天堂av网| 91在线播放网址| 中文字幕一区二区三区不卡在线| 成人永久免费视频| 国产精品网曝门| 成人黄色一级视频| 中文字幕在线观看一区二区| 成人免费视频视频在线观看免费 | 欧美久久久久久蜜桃| 午夜精品免费在线观看| 欧美日韩视频在线第一区| 亚洲国产va精品久久久不卡综合| 在线观看不卡一区| 亚洲成av人片在www色猫咪| 精品视频资源站| 日韩国产一二三区| 日韩女优av电影| 国模大尺度一区二区三区| 久久免费的精品国产v∧| 国产精品18久久久久久vr| 国产欧美一区二区精品性色超碰| 丁香啪啪综合成人亚洲小说| 亚洲欧美日韩中文字幕一区二区三区 | 美女高潮久久久| 久久影院午夜论| 成人中文字幕电影| 亚洲综合清纯丝袜自拍| 欧美一区二区三区视频在线 | 久久电影国产免费久久电影| 26uuu国产一区二区三区| 成人h精品动漫一区二区三区| 亚洲视频图片小说| 欧美日韩电影一区| 国产在线一区观看| 亚洲色图另类专区| 宅男噜噜噜66一区二区66| 国产精品一区二区久久精品爱涩| 欧美国产一区视频在线观看| 97久久久精品综合88久久| 爽好多水快深点欧美视频| 久久久久亚洲蜜桃| 色综合天天综合| 欧美aaaaaa午夜精品|