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

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

?? socketlogic.java

?? 電信小靈通短信網(wǎng)關(guān)通訊協(xié)議SMGP的JAVA語言API開發(fā)包源代碼
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:
            break; //全部處理成功,退出
          }

        }
      }
      catch (IOException ioexception) {
        System.err.println("socketLogic.submit Failed I/O: " + ioexception);
        for (int i = 0; i < multi.length; i++) {
          if (multi[i].result != -1) {
            multi[i].result = configure.ERROR_SEND_FAILED;
            //return;
          }
        }
      }
    }
    // return errorCode;
  }

    /********************************************************************************
     *
     * 登錄系統(tǒng)
     *
     */
    public int login(SMGPHeadStruct head, byte body[],socketStruct socket,int retryTimes,int timeout)
     {
        DataInputStream dataRec;
        DataOutputStream dataSend;
        int errorCode=0;
         try {
              head.sequenceId = socket.seq++;
              if(socket.seq == 0x7fffffff)
                socket.seq = 1;
              socket.socket.setSoTimeout(timeout); //設(shè)置超時時間
              dataRec = new DataInputStream(socket.socket.getInputStream());
              dataSend = new DataOutputStream(socket.socket.getOutputStream());
              errorCode=send(head,body,dataSend);
          }
         catch (IOException ioexception) {
           System.err.println("socketLogic.login Failed I/O: " + ioexception);
           return configure.ERROR_SEND_FAILED;
         }
        return errorCode;
     }

    /*********************************************************************************
     *
     * 發(fā)送數(shù)據(jù)
     * @return 0:成功 1:失敗
     */
    public int send(SMGPHeadStruct head, byte body[],DataOutputStream dataSend)
   {
     try{
       int i = head.packageSize - 12;
       byte abyte1[] = fun.head2Byte(head);
       dataSend.write(abyte1, 0, 12);
       if (i > 0 && body != null)
         dataSend.write(body, 0, i);
       dataSend.flush();
     }catch(InterruptedIOException e)
     {//超時
           System.err.println("socketLogic.timeout receive timeout: " + e);
           return configure.SOCKET_SO_TIMEOUT;
     }
     catch(IOException ioexception)
     {//其它錯誤
          System.err.println("socketLogic.send Failed I/O: " + ioexception);
           return configure.ERROR_CONNECT_FAILED;
      }
      catch (Exception ioexception) {
                  System.err.println("socketLogic.send Exception: " + ioexception);
                  return configure.ERROR_SEND_FAILED;
                  }

      return 0;
   }

  /********************************************************************************************
  *
  * 保存接收deliver數(shù)據(jù)并返回response(主要用于發(fā)送數(shù)據(jù)后接收response時,意外接收到的deliver)
  *由activeTest或submit等調(diào)用,端口鎖定由調(diào)用的method處理
  * type: 0--發(fā)送端口,1--接收端口  2--收發(fā)端口
  *
  **/
 public int dealDeliver(socketStruct socket,Hashtable hash,deliverVector deliverQueue,int type )
 {
        DataInputStream dataRec;
         DataOutputStream dataSend;
         int errorCode=0;
           try {
               SMGPHeadStruct head=(SMGPHeadStruct)hash.get("head");
               if ( head.requestId==3 &&( (String) hash.get("result")).equals("ok"))
                 { //接收deliver成功
                   //if(deliverQueue(head,(byte[])hash.get("body"),deliverQueue))
                    if(type==0||(type!=0&&deliverQueue(head,(byte[])hash.get("body"),deliverQueue)))
                   {//接收的數(shù)據(jù)正確,返回deliver_resp
                     head.requestId=0x80000003;
                     head.packageSize=26;
                     byte[] body=new byte[14];
                     System.arraycopy((byte[])hash.get("body"),0,body,0,10);
                   /*  int status=0;  //若為收發(fā)、收端口,則返回正確信息
                     if(type==0)
                       status=128;  //若是發(fā)送端口,返回“接口處理錯”的信息
                     byte[] s=fun.int2Byte(status);
                     body[10]=s[0];*/
                  body[10]=0;  //若為收發(fā)、收端口,則返回正確信息
                   if(type==0)
                     body[10]=(byte)0x80;  //若是發(fā)送端口,返回“接口處理錯”的信息
                  // byte[] s=fun.int2Byte(status);
                  // body[10]=s[0];
                     body[11]=0;
                     body[12]=0;
                     body[13]=0;
                     dataSend = new DataOutputStream(socket.socket.getOutputStream());
                     send(head,body,dataSend);
                   }
                 }
                 else
                 {//接收失敗
                   errorCode=configure.ERROR_RECEIVE_FAILED;
                 }
          }
           catch(InterruptedIOException e)
              {//超時退出
              }
           catch (IOException ioexception) {
              System.err.println("socketLogic.dealDeliver Failed I/O: " + ioexception);
              return configure.ERROR_RECEIVE_FAILED;
              }
          catch (Exception ioexception) {
                 System.err.println("socketLogic.dealDeliver Exception: " + ioexception);
                 return configure.ERROR_RECEIVE_FAILED;
                 }

         return errorCode;
 }
 /**********************************************************************************************
  *
  * 循環(huán)接收deliver數(shù)據(jù)
  *返回接收的數(shù)量
  */

 public int cycleReceive(socketStruct socket,deliverVector deliverQueue)
 {
         DataInputStream dataRec;
         DataOutputStream dataSend;
         int receiveTotal=0;
         int errorCode=0;
         long startTime=System.currentTimeMillis();
do{//循環(huán)接收數(shù)據(jù),直到?jīng)]有數(shù)據(jù)接收或socket超時
           synchronized (socket) {
             try {
               socket.socket.setSoTimeout(configure.SOCKET_RECEIVE_TIMEOUT); //設(shè)置超時時間
               dataRec = new DataInputStream(socket.socket.getInputStream());
               Hashtable hash = receive(socket);
               if (hash == null) {
                 errorCode = configure.ERROR_RECEIVE_FAILED;
                 return errorCode;
               }
               SMGPHeadStruct head = (SMGPHeadStruct) hash.get("head");
               if (head.requestId == 3 && ( (String) hash.get("result")).equals("ok")) { //接收deliver成功
                 if (deliverQueue(head, (byte[]) hash.get("body"), deliverQueue)) { //接收的數(shù)據(jù)正確,返回deliver_resp
                   head.requestId = 0x80000003;
                   head.packageSize = 26;
                   byte[] body = new byte[14];
                   System.arraycopy( (byte[]) hash.get("body"), 0, body, 0, 10);
                   body[10] = 0;
                   body[11] = 0;
                   body[12] = 0;
                   body[13] = 0;
                   dataSend = new DataOutputStream(socket.socket.getOutputStream());
                   send(head, body, dataSend);
                   receiveTotal++;
                   if(System.currentTimeMillis()-startTime>900) //900毫秒后退出接收
                      break;
                 }
               }
               else { //接收失敗
                 errorCode = configure.ERROR_RECEIVE_FAILED;
                 break;
               }
               // }
             }
             catch (InterruptedIOException e) { //超時退出
              break;
             }
             catch (IOException ioexception) {
               System.err.println("socketLogic.cycleDeliver Failed I/O: " +
                                  ioexception);
               return configure.ERROR_RECEIVE_FAILED;
             }
             catch(Exception ioexception)
              {//其它錯誤
                   System.err.println("socketLogic.cycleReceive(socketStruct socket,deliverVector deliverQueue) eXCEPTION: " + ioexception);
                return configure.ERROR_RECEIVE_FAILED;
               }

           }}
        while(true);
         return receiveTotal;
       //  return errorCode;
 }

        /****************************************************************************************
         *
         * 將deliver數(shù)據(jù)送入相應(yīng)的接收隊列
         *@param head、body 接受到的數(shù)據(jù)
         *@param deliverQueue 數(shù)據(jù)接收隊列
         */
        public boolean deliverQueue(SMGPHeadStruct head,byte[] body,deliverVector deliverQueue)
        {
          boolean result=true;
       try{
          deliverStruct deliver=new deliverStruct();
          deliver.setPackageLength(head.packageSize);
          deliver.setRequestId(head.requestId);
          deliver.setSequenceId(head.sequenceId);
          int k=0;
          byte[] msgId=new byte[10];
          System.arraycopy(body,k,msgId,0,10);
          deliver.setMsgId(msgId);
          k+=10;
          deliver.setIsReport(fun.byte2Int(body[k]));
          k+=1;
          deliver.setMsgFormat(fun.byte2Int(body[k]));
          k+=1;
          byte[] recvTime=new byte[14];
          System.arraycopy(body,k,recvTime,0,10);
          deliver.setRecvTime(recvTime);
          k+=14;

          byte[] srcTermId=new byte[21];
          System.arraycopy(body,k,srcTermId,0,21);
          deliver.setSrcTermId(srcTermId);
          k+=21;

          byte[] destTermId=new byte[21];
          System.arraycopy(body,k,destTermId,0,21);
          deliver.setDestTermId(destTermId);
          k+=21;

          deliver.setMsgLength(fun.byte2Int(body[k]));
           k+=1;

          byte[] msgContent=new byte[deliver.getMsgLength()];
          System.arraycopy(body,k,msgContent,0,msgContent.length);
          deliver.setMsgContent(msgContent);
          k+=deliver.getMsgLength();

          byte[] reserve=new byte[8];
          System.arraycopy(body,k,reserve,0,8);
          deliver.setReserve(reserve);
          k+=8;

          synchronized(deliverQueue)
          { //將接收到的數(shù)據(jù)放入接收隊列
           /* if(deliver.getIsReport()==1)
              System.out.println("report");
            else
              System.out.println("deliver");*/
            if (configure.QUEUE_DELIVER_MAX == 0 ||
                deliverQueue.size() < configure.QUEUE_DELIVER_MAX)
              deliverQueue.add(deliver);
            else
              result=false; //接收隊列已滿
          }
        //  System.out.println("deliverQueue length="+deliverQueue.size());
       }
       catch(Exception e)
       {
         System.out.println("deliverQueue(SMGPHeadStruct head,byte[] body,deliverVector deliverQueue):"+e);
         result=false;
       }
       return result;
     }
        /********************************************************************************************
           *
           * 接收數(shù)據(jù),不進(jìn)行任何處理
           *
           * dataRec接收數(shù)據(jù)
           */
            public Hashtable receive(socketStruct socket)
             {
                DataInputStream dataRec=null;
                Hashtable hash=new Hashtable();
                String result="error";
                SMGPHeadStruct head=new SMGPHeadStruct();
                byte[] body=new byte[0];
                try{
                  dataRec = new DataInputStream(socket.socket.getInputStream());
                }
                catch(IOException ioexception)
              {//IO錯誤
                   System.err.println("1 socketLogic.receivet(DataInputStream dataRec) Failed I/O: " + ioexception);
                   result="error";
                   hash.put("head",head);
                   hash.put("body",body);
                   hash.put("result",result);
                   return hash;
              }
                try
                {
                  head.packageSize = dataRec.readInt();
                  head.requestId = dataRec.readInt();
                  head.sequenceId = dataRec.readInt();
                  //System.out.println("head.packageSize:"+head.packageSize);
                  if(head.packageSize>100000||head.requestId ==0||head.packageSize <12)
                  {//接收倒的數(shù)據(jù)出錯,需復(fù)位socket連接
                    socket.socket.close();
                    socket.socket=null;
                    return null;
                  }
                  body = new byte[head.packageSize-12];
                  result="wait";  //等待接收包體
                  for(int readBytes=0;readBytes<head.packageSize-12;)
                  {
                    readBytes+=dataRec.read(body, readBytes, head.packageSize-12-readBytes);
                  }
                  result="ok";
               }
               catch(InterruptedIOException e)
               {//超時
                 //System.err.println("socketLogic.receivet(DataInputStream dataRec) receive timeout: " + e);
                 try{
                   if ("wait".equals(result)) { //socket超時時,數(shù)據(jù)未接收完畢,需復(fù)位socket連接
                      socket.socket.close();
                      socket.socket=null;
                       return null;
                    }
                  }catch(IOException ioexception){}

                   result="timeout";
               }
               catch(IOException ioexception)
              {//IO錯誤
                   System.err.println(" socketLogic.receivet(DataInputStream dataRec) Failed I/O: " + ioexception);
                   try{
                     socket.socket.close();   //端口IO錯誤,關(guān)閉端口
                     socket.socket=null;
                 }catch(IOException ioexception1){}

                   result="error";
              }
              catch(Exception ioexception)
              {//其它錯誤
                   System.err.println(" socketLogic.receivet(DataInputStream dataRec) eXCEPTION: " + ioexception);
                   result="error";
              }

               hash.put("head",head);
               hash.put("body",body);
               hash.put("result",result);
               return hash;
            }


}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91精品国产全国免费观看 | 欧美久久一区二区| 奇米精品一区二区三区四区| 中文字幕中文在线不卡住| 欧美一区中文字幕| 91香蕉视频黄| 国产不卡在线一区| 老汉av免费一区二区三区| 亚洲免费资源在线播放| 国产偷v国产偷v亚洲高清| 69堂精品视频| 在线观看日韩av先锋影音电影院| 国产成人免费在线观看不卡| 蜜桃av一区二区三区| 亚洲一区二区三区三| 亚洲欧洲国产日韩| 久久影音资源网| 日韩精品专区在线影院观看| 久久久久久久网| 91精品国产一区二区三区蜜臀 | 精品欧美乱码久久久久久1区2区 | 99精品久久久久久| 国产成人综合在线播放| 精品一区免费av| 欧美中文字幕一区二区三区亚洲| 成人黄色大片在线观看| 国产一区二区三区精品欧美日韩一区二区三区 | 欧美日韩在线播| 一本久久a久久精品亚洲| 国产一区二区三区久久久| 蜜桃视频在线一区| 日本午夜一区二区| 日产欧产美韩系列久久99| 亚洲高清免费在线| 性做久久久久久| 亚洲成人av资源| 日韩综合小视频| 日韩精品色哟哟| 免费观看在线色综合| 日本免费新一区视频| 蜜臀国产一区二区三区在线播放| 日韩精品五月天| 麻豆成人久久精品二区三区小说| 蜜桃一区二区三区四区| 国产最新精品免费| 国产精品一区在线| 国产成人午夜高潮毛片| 9i看片成人免费高清| 色综合久久综合网97色综合| 91久久精品一区二区| 欧美在线色视频| 欧美一区二区免费| 日韩精品一区二区三区中文精品| 精品久久免费看| 国产精品久久久久久久久免费丝袜 | 91在线视频播放| 91麻豆精品一区二区三区| 在线精品视频免费播放| 欧美日本高清视频在线观看| 日韩精品一区二区三区视频| 久久久久久久久蜜桃| 日韩美女久久久| 午夜天堂影视香蕉久久| 国产在线麻豆精品观看| www.亚洲在线| 欧美男男青年gay1069videost| 欧美一区二区三区视频免费播放| 久久精品人人做人人爽97| 国产精品第一页第二页第三页| 一二三四社区欧美黄| 人人狠狠综合久久亚洲| 国产成人一级电影| 欧美亚洲丝袜传媒另类| 欧美大片顶级少妇| 亚洲欧美日韩国产综合| 免费在线观看一区| a级高清视频欧美日韩| 欧美精品丝袜中出| 欧美激情一区二区三区不卡| 亚洲一区日韩精品中文字幕| 精品在线免费视频| 91理论电影在线观看| 日韩你懂的在线播放| 亚洲美女区一区| 国产精品1024| 欧美久久久一区| 国产精品国产三级国产专播品爱网 | 国产校园另类小说区| 一区二区三区四区高清精品免费观看| 舔着乳尖日韩一区| 成人精品国产免费网站| 91麻豆精品国产91久久久久久久久| 久久精品网站免费观看| 一区二区激情小说| 粉嫩av一区二区三区粉嫩| 337p亚洲精品色噜噜| 最新日韩av在线| 激情综合色综合久久| 欧美伊人久久久久久久久影院| 久久久久久亚洲综合| 视频精品一区二区| 99re成人精品视频| 久久精品亚洲精品国产欧美 | 精品午夜一区二区三区在线观看| 91美女精品福利| 久久久精品免费观看| 青青青爽久久午夜综合久久午夜| 色94色欧美sute亚洲线路一久| 久久久欧美精品sm网站| 日日嗨av一区二区三区四区| 日本精品视频一区二区三区| 亚洲国产精品成人久久综合一区| 美女诱惑一区二区| 欧美日韩精品欧美日韩精品| 亚洲美女电影在线| 99国产精品99久久久久久| 久久久久久久久蜜桃| 狠狠久久亚洲欧美| 日韩精品综合一本久道在线视频| 三级亚洲高清视频| 欧美精品 国产精品| 亚洲亚洲人成综合网络| 日本高清无吗v一区| 亚洲女同ⅹxx女同tv| av不卡一区二区三区| 欧美精彩视频一区二区三区| 国产麻豆精品一区二区| 日韩精品一区二区三区中文不卡| 免费高清在线一区| 日韩一级片网站| 久久国产精品99久久人人澡| 日韩一区二区高清| 激情五月激情综合网| 久久综合久久综合久久| 国内精品免费**视频| 精品国产91亚洲一区二区三区婷婷| 日本人妖一区二区| 日韩精品一区二区三区中文不卡 | 亚洲一区二区三区四区在线| 色综合久久久久综合99| 亚洲精品日韩一| 在线一区二区三区做爰视频网站| 亚洲一二三专区| 欧美日韩视频在线观看一区二区三区 | 91色视频在线| 亚洲手机成人高清视频| 99国产精品视频免费观看| 亚洲精品久久嫩草网站秘色| 在线观看一区日韩| 天天色 色综合| 91精品国产日韩91久久久久久| 蜜臀av性久久久久蜜臀av麻豆 | 日韩欧美一级精品久久| 久久精品久久综合| 国产婷婷色一区二区三区在线| 国产乱子伦视频一区二区三区 | 久久精品视频网| 成人免费看片app下载| 1区2区3区精品视频| 在线欧美小视频| 全部av―极品视觉盛宴亚洲| 精品少妇一区二区| 国产成人在线视频网址| 日韩一区在线播放| 欧美二区乱c少妇| 国产成人一区在线| 一区二区三区免费| 欧美一区二区三区精品| 国产高清精品在线| 亚洲午夜久久久| 日韩一区二区免费在线观看| 国产成人午夜精品5599| 一区二区三区日韩精品视频| 日韩精品一区二区三区在线播放| 成人黄色片在线观看| 亚洲18女电影在线观看| 国产欧美精品一区二区色综合| 欧洲精品一区二区三区在线观看| 麻豆精品一二三| 亚洲人成影院在线观看| 日韩精品一区二区三区swag | 麻豆精品在线播放| 最新日韩av在线| 欧美变态口味重另类| 91丨porny丨户外露出| 裸体一区二区三区| 亚洲免费观看高清在线观看| 欧美成人性战久久| 在线观看国产一区二区| 国产精品18久久久久| 亚洲成人免费看| 日本一区二区在线不卡| 日韩午夜激情av| 色老汉一区二区三区| 国产福利91精品一区| 日韩精品视频网站| 亚洲综合男人的天堂| 中文字幕高清一区| 精品美女在线观看| 欧美日韩精品欧美日韩精品一综合 |