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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? cwtpresponder.java

?? jwap 協議 udp 可以用于手機通訊
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:
/** * JWAP - A Java Implementation of the WAP Protocols * Copyright (C) 2001-2004 Niko Bender * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */package net.sourceforge.jwap.wtp;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import net.sourceforge.jwap.util.Logger;import net.sourceforge.jwap.wtp.pdu.CWTPAbort;import net.sourceforge.jwap.wtp.pdu.CWTPAck;import net.sourceforge.jwap.wtp.pdu.CWTPInvoke;import net.sourceforge.jwap.wtp.pdu.CWTPPDU;import net.sourceforge.jwap.wtp.pdu.CWTPResult;import net.sourceforge.jwap.wtp.pdu.EWTPCorruptPDUException;public class CWTPResponder implements IWTPTransaction{  private static final byte STATE_LISTEN = 0x00;  private static final byte STATE_TIDOK_WAIT = 0x01;  private static final byte STATE_INVOKE_RESP_WAIT = 0x02;  private static final byte STATE_RESULT_WAIT = 0x03;  private static final byte STATE_RESULT_RESP_WAIT = 0x04;  private static final byte STATE_WAIT_TIMEOUT = 0x05;  private static final String[] states = {"LISTEN",                                          "TIDOK WAIT",                                          "INVOKE RESP WAIT",                                          "RESULT WAIT",                                          "RESLUT RESP WAIT",                                          "WAIT TIMEOUT"};  static Logger logger = Logger.getLogger(CWTPResponder.class);  private byte state = 0x00;  // which session does this transaction belong to?  private IWTPUpperLayer upperLayer;  // used to send and receive  private CWTPSocket wtpSocket;  // is this transaction aborted?  private boolean aborted = false;  private short abortCode;  /**   * 5.3.1.7   * Class Type 1, 2 or 3   */  private byte classType;  /**   * 9.4.1   * ack interval   * this sets a bound for the amount of time to wait before sending an acknowledgement.   */  private javax.swing.Timer a_timer;  private int a = 5000;  /**   * 9.4.1   * retry interval   * This sets a bound for the amount of time to wait before re-transmitting a PDU.   */  private javax.swing.Timer r_timer;  private int r = 10000;  /**   * 9.4.1   * wait timeout interval (only class 2 initiator and class 1 responder)   * This sets a bound for the amount of time to wait before state information   * about a transaction is released.   */  private javax.swing.Timer w_timer;  private int w = 5000;  /**   * 9.4.2   * re-transmission counter   * acknowledgement expireation counter   */  private int rcr = 0;  private int aec = 0;  public static final int RCR_MAX = 3;  public static final int AEC_MAX = 3;  /**   * 9.4.3   * counter to generate unique TIDs   * uint16   */  private static int genTID = 0;  /**   * uint16   */  private int sendTID;  private int rcvTID;  private int lastTID;  /**   * recently sent PDU - hold it for retransmission   */  private CWTPPDU sentPDU;  private boolean holdOn = false;  private boolean uack = false;  //XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX  //XXXXXXXXXXXXXXXXXXXXXXX CONSTRUCTOR XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX  /**   * Constructs a CWTPSocket using a DatagramSocket (UDP).   * Even implementing all parameters belonging to according to   * TR-Invoke service primitive (section 5.3.1),   * which are not temporary for one transaction.   * This socket can be used several times by service primitives.   * After all it has to be closed by calling <code>close()</code>   *   * @see #close(short)   * @param to destination address (section 5.3.1.3)   * @param port destination port (section 5.3.1.4)   * @param ackType Ack Type (section 5.3.1.5)   * @param classType Class Type (0, 1 or 2) (section 5.3.1.8)   * @throws IllegalArgumentException   * @throws SocketException   */  public CWTPResponder(CWTPSocket wtp_Socket,                        IWTPUpperLayer upper_Layer,                        CWTPInvoke initPDU,                        boolean ackType,                        byte classtype                        ){    init(wtp_Socket, upperLayer, ackType, classtype);    rcvTID = initPDU.getTID();    sendTID = rcvTID - 32768; // sendTID = rcvTID XOR 0x8000    // process the invoke pdu    try{      process(initPDU);    } catch (EWTPAbortedException e){      logger.error("PDU processing aborted", e);    }  }  private void init(CWTPSocket wtp_Socket,                    IWTPUpperLayer upper_Layer,                    boolean ackType,                    byte classtype                  ) throws IllegalArgumentException {    this.upperLayer = upper_Layer;    this.wtpSocket = wtp_Socket;    wtpSocket.addTransaction(this);    uack = ackType;    setClassType(classtype);    // initialize timer and add actionListener    // see declaration of a_timer above    a_timer = new javax.swing.Timer(a,      new ActionListener() {        public void actionPerformed(ActionEvent e) {          a_timer.stop();          if (state == STATE_INVOKE_RESP_WAIT){            // check acknowledgement counter            if (aec < AEC_MAX){              logger.debug("acknowledgement timer abgelaufen: aec < AEC_MAX");              aec++;              a_timer.restart();              setState(STATE_RESULT_RESP_WAIT);            } else if (aec == AEC_MAX){              //abort if acknowledgement counter exceeds the maximum              logger.debug("acknowledgement timer abgelaufen: aec == AEC_MAX");              CWTPAbort send = new CWTPAbort(sendTID);              send.setAbortReason(CWTPAbort.ABORT_REASON_NORESPONSE);              wtpSocket.send(send);              close(CWTPAbort.ABORT_REASON_NORESPONSE);              aec = 0;              upperLayer.tr_abort(CWTPAbort.ABORT_REASON_NORESPONSE);              setState(STATE_LISTEN);            } else if (!uack && classType == CLASS_TYPE_1){              logger.debug("acknowledgement timer abgelaufen: uack == false classtype 1");              CWTPAck send = new CWTPAck(sendTID);              wtpSocket.send(send);              w_timer.restart();              setState(STATE_WAIT_TIMEOUT);            } else if (!uack && classType == CLASS_TYPE_2){              logger.debug("acknowledgement timer abgelaufen: uack == false classtype 2");              CWTPAck ack = new CWTPAck(sendTID);              wtpSocket.send(ack);              setState(STATE_RESULT_WAIT);            }          }          else if (state == STATE_RESULT_WAIT){            logger.debug("acknowledgement timer abgelaufen.");            CWTPAck ack = new CWTPAck(sendTID);            wtpSocket.send(ack);            setState(STATE_RESULT_WAIT);          }        }      }    );    // see declaration of r_timer above    r_timer = new javax.swing.Timer(r,      new ActionListener() {        public void actionPerformed(ActionEvent e) {          r_timer.stop();          if (state == STATE_RESULT_RESP_WAIT){            // check retransmission counter            if (rcr < RCR_MAX){              logger.debug("retransmission timer "+ rcr                            + " mal abgelaufen. Re-sending Result.");              rcr++;              r_timer.restart();              // re-send recent Result              wtpSocket.send(sentPDU);              setState(STATE_RESULT_RESP_WAIT);            } else if (rcr == RCR_MAX){              logger.debug("retransmission timer " + rcr                            + " mal abgelaufen. Abbruch!");              // abort              close(CWTPAbort.ABORT_REASON_UNKNOWN);              upperLayer.tr_abort(CWTPAbort.ABORT_REASON_UNKNOWN);              rcr = 0;              setState(STATE_LISTEN);            }          }        }      }    );    // see declaration of w_timer above    w_timer = new javax.swing.Timer(w,      new ActionListener() {        public void actionPerformed(ActionEvent e) {          w_timer.stop();          if (state == STATE_WAIT_TIMEOUT){            logger.debug("wait timeout");            setState(STATE_LISTEN);            close((short)0x00);          }        }      }    );  }  //XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX  //XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX  /**   * Invoked by the run()-Method of the Management-Entity CWTPManagement.   * Processes given protocol data units   * according to state machine described in section 9.5   * <b>Notice:</b> Only WTP Initiator is implemented!   *   * @param pdu the pdu to be processed in the state machine   */  public synchronized void process(CWTPPDU pdu) throws EWTPAbortedException{    if (aborted){      throw new EWTPAbortedException(abortCode);    }    switch (state){      ///////////////////// STATE LISTEN ///////////////////////////////////////      case 0x00:        // invoke pdu in state listen        if(pdu.getPDUType() == CWTPPDU.PDU_TYPE_INVOKE){          if (this.classType == IWTPTransaction.CLASS_TYPE_1 ||              this.classType == IWTPTransaction.CLASS_TYPE_2){            if (true/** @todo is tid ok? */){

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产福利一区在线| 欧美视频一区二区三区四区 | 精品日产卡一卡二卡麻豆| 亚洲自拍都市欧美小说| 在线影院国内精品| 午夜欧美在线一二页| 欧美精品色综合| 国产成人啪午夜精品网站男同| 国产人伦精品一区二区| av一区二区三区在线| 欧美成人bangbros| 成人av手机在线观看| 亚洲午夜久久久久| 精品国产乱码久久久久久久久| 国产凹凸在线观看一区二区| 亚洲免费观看高清完整| 欧美日韩在线一区二区| 麻豆成人av在线| 中文字幕乱码久久午夜不卡 | 日韩视频永久免费| 国产成人亚洲综合a∨婷婷 | 日韩av二区在线播放| 久久免费美女视频| 97精品久久久久中文字幕 | 欧洲亚洲国产日韩| 精品一区二区在线观看| 自拍偷在线精品自拍偷无码专区 | 亚洲国产wwwccc36天堂| 国产喷白浆一区二区三区| 丁香桃色午夜亚洲一区二区三区| 亚洲狠狠丁香婷婷综合久久久| 精品日韩欧美在线| 欧美日韩国产经典色站一区二区三区| 国产精品一区二区在线观看网站| 亚洲一区二区三区四区在线| 国产精品嫩草影院com| 久久精品亚洲麻豆av一区二区| 这里只有精品视频在线观看| 成人免费毛片a| 亚洲国产精品一区二区尤物区| 国产精品全国免费观看高清| 日韩欧美一区二区免费| 欧美在线免费视屏| 欧美图区在线视频| 欧美日韩成人一区二区| 午夜精品爽啪视频| 2023国产精品| 日韩高清不卡在线| 欧美日韩在线播| 亚洲自拍偷拍九九九| 成人高清免费观看| 久久综合网色—综合色88| 污片在线观看一区二区| 欧洲精品在线观看| 亚洲综合网站在线观看| 色综合中文综合网| 欧美三级中文字幕在线观看| 一区二区欧美国产| 日本国产一区二区| 中文字幕一区二区日韩精品绯色| 国产99精品在线观看| 一色桃子久久精品亚洲| 在线欧美日韩国产| 亚洲成人av一区| 欧美成人激情免费网| 国产成人精品免费网站| 欧美高清dvd| 亚洲成人av免费| 亚洲黄色在线视频| 亚洲日本成人在线观看| www久久精品| 欧美午夜一区二区| 国产成a人亚洲| 国产精品午夜春色av| 91福利国产成人精品照片| 日韩精品亚洲一区二区三区免费| 国产欧美一区二区三区在线老狼| 欧洲一区在线观看| 成人av电影在线观看| 国产一区欧美一区| 婷婷丁香激情综合| 国产亚洲成av人在线观看导航| 欧美福利视频一区| 日本道精品一区二区三区| 成人一道本在线| 韩国精品免费视频| 男人的天堂久久精品| 国产精品国产三级国产aⅴ中文 | 色成年激情久久综合| 美女精品自拍一二三四| 亚洲国产精品欧美一二99| 中文字幕视频一区| 国产亚洲欧美色| 久久久久久电影| 中国色在线观看另类| 国产精品国产三级国产普通话蜜臀| 国产亚洲美州欧州综合国| 中文字幕一区二区三区不卡在线| 欧美日韩精品一区二区三区四区| 麻豆国产欧美日韩综合精品二区 | av亚洲精华国产精华| 国产福利精品导航| 国产在线国偷精品免费看| 精品无码三级在线观看视频| 亚洲国产欧美日韩另类综合 | 欧美日韩小视频| 欧美理论片在线| 欧美亚洲日本国产| 欧美人xxxx| 91麻豆精品国产自产在线观看一区 | av电影天堂一区二区在线| 成人国产精品免费观看| 91在线观看地址| 欧美日韩一区二区三区视频| 欧美三级午夜理伦三级中视频| 在线看不卡av| 欧美一区二区三区小说| 26uuu亚洲| 亚洲美女屁股眼交| 久久成人久久爱| 国产电影精品久久禁18| 色欧美片视频在线观看| 日韩欧美你懂的| 中文字幕亚洲在| 另类调教123区| 91小视频免费观看| 欧美一区二区在线免费观看| 国产欧美日韩在线视频| 午夜精品123| 91一区二区三区在线播放| 日韩欧美一区二区三区在线| 亚洲美女偷拍久久| 亚洲精品国产精品乱码不99 | 欧美中文字幕一二三区视频| 中文字幕不卡在线| 国产麻豆视频精品| 久久欧美一区二区| 国产精品一二三区在线| 久久久久久久久久久久久女国产乱| 亚洲第一福利视频在线| 91视频xxxx| 亚洲欧美日韩国产综合在线 | 欧美一区二区三区性视频| 偷窥少妇高潮呻吟av久久免费| 91搞黄在线观看| 亚洲精品美国一| 一本色道久久综合狠狠躁的推荐| 日韩一区有码在线| av一区二区久久| 一区二区三区四区高清精品免费观看| 99久久亚洲一区二区三区青草| 欧美激情一区三区| 91小视频在线免费看| 亚洲午夜精品久久久久久久久| 欧美午夜一区二区| 日本强好片久久久久久aaa| 51久久夜色精品国产麻豆| 久久成人久久爱| 国产精品乱码妇女bbbb| 91国在线观看| 免费成人在线视频观看| 久久夜色精品国产欧美乱极品| 国产成人亚洲综合a∨婷婷| 自拍偷拍欧美激情| 欧美一区二区私人影院日本| 国产精品系列在线观看| 亚洲免费观看视频| 日韩精品在线看片z| 99免费精品视频| 麻豆精品国产传媒mv男同| 亚洲国产精品成人综合| 欧美视频日韩视频| 懂色中文一区二区在线播放| 亚洲精品伦理在线| 欧美精品一区二区三区久久久| 91香蕉视频在线| 国产成人精品一区二区三区网站观看| 一区二区日韩电影| 国产色综合一区| 欧美大肚乱孕交hd孕妇| 欧美三级电影网站| 一本到不卡免费一区二区| 国产老妇另类xxxxx| 日本午夜一区二区| 亚洲精品你懂的| 国产精品白丝在线| 久久久激情视频| 日韩美女视频在线| 欧美日韩国产首页在线观看| 成人免费高清视频| 粉嫩aⅴ一区二区三区四区| 日本不卡123| 日本91福利区| 奇米在线7777在线精品| 亚洲一二三专区| 一区二区三区丝袜| 一区二区三区波多野结衣在线观看| 亚洲日本免费电影| 亚洲天堂精品视频| 自拍偷拍欧美激情|