哪吒2之魔童闹海|哪吒2之魔童归来免费观看|哪吒2在线观看|哪吒2魔童闹海电影免费观看|哪吒2免费观看完整版大电影|哪吒1免费观看完整版

新疆軟件開發(fā)

本站首頁 軟件開發(fā) 成功案例 公司新聞 公司簡介 客服中心 軟件技術(shù) 網(wǎng)站建設(shè)
  您現(xiàn)在的位置: 新疆二域軟件開發(fā)公司 >> Java技術(shù) >> 文章正文

java中如何處理http連接超時的問題

這段時間做j2me的一個小游戲.用到了http連接,學(xué)習(xí)了論壇上說的一種方法.

"聲明一個boolean公共變量,表明當(dāng)前httpconnection是否得到服務(wù)器回應(yīng)。

你的連接線程中在連接之前置這個變量為false;

另起一個監(jiān)視線程,拿到那個HttpConnection的連接對象,并循環(huán)監(jiān)視這個boolean公共變量。如果指定時間內(nèi)(20秒后)你的boolean公共變量還是false,那么就主動置httpconnection=null。這樣,那邊連接線程就會拋出異常退出來。"  -----zhengyun

寫了Timer類來實現(xiàn).(學(xué)習(xí)國外一個網(wǎng)站上的寫法)

class Timer extends Thread {
  /** 每個多少毫秒檢測一次 */
  protected int m_rate = 100;

  /** 超時時間長度毫秒計算 */
  private int m_length;

  /** 已經(jīng)運行的時間 */
  private int m_elapsed;

  /**
   * 構(gòu)造函數(shù)
   * 
   * @param length
   *            Length of time before timeout occurs
   */
  public Timer(int length) {
   // Assign to member variable
   m_length = length;

   // Set time elapsed
   m_elapsed = 0;
  }
  /**
   * 重新計時
   *
   */

  public synchronized void reset() {
   m_elapsed = 0;
   System.out.println("reset timer");
  }
  /**
   * 故意設(shè)置為超時,可以在服務(wù)器有返回,但是錯誤返回的時候直接調(diào)用這個,當(dāng)成超時處理
   *
   */
  public synchronized void setTimeOut()
  {
   m_elapsed = m_length+1;
  }

  /** 
    */
  public void run() {
   // 循環(huán)

   System.out.println("timer running");
   for (;;) {
    // Put the timer to sleep
    try {
     Thread.sleep(m_rate);
    } catch (InterruptedException ioe) {
     continue;
    }

    synchronized (this) {
     // Increment time remaining

  m_elapsed += m_rate;

     // Check to see if the time has been exceeded
     if (m_elapsed > m_length && !isConnActive) { //isConnActive 為全局變量
      // Trigger a timeout
      timeout();
      break;
     }
    }

   }
  }

  /**
   * 超時時候的處理
   *
   */
  public void timeout() {
      httpConnection = null;
      System.out.println("conn time > " + TIME_OUT + " ms");
    }
 }


 

在http連接線程調(diào)用的同是調(diào)用 new Timer(20*1000).start();

需要重新計時時候調(diào)用timer.reset();

不知道大家有沒有更好的方法可以一起探討一下!

作者:未知 | 文章來源:未知 | 更新時間:2007-12-25 13:02:02

  • 上一篇文章:

  • 下一篇文章:

  • 相關(guān)文章:
    JAVA開發(fā)的6個實踐的例子
    JAVA中的抽象類型的一些概念
    java語言開發(fā)程序中的幾個例子大家看看
    了解java開發(fā)語言在軟件開發(fā)中的幾個誤區(qū)
    如何才能使用Java實現(xiàn)內(nèi)部領(lǐng)域的特定語言
    Java開發(fā)學(xué)習(xí)小心使用Date以及Time類
    sun最近修補了一部分java的安全補丁
    Java程序員應(yīng)該了解那些開源協(xié)議
    java性能優(yōu)化的一些見解
    解析c#語言和java語言最相似的地方
    軟件技術(shù)
    · 開發(fā)語言
    · Java技術(shù)
    · .Net技術(shù)
    · 數(shù)據(jù)庫開發(fā)
    最新文章  
    ·j2se 嵌入式腳本抓取引擎
    ·JAVA開發(fā)的6個實踐的例子
    ·JBuilder7 / Weblogic7開發(fā)
    ·JAVA中的抽象類型的一些概
    ·java語言開發(fā)程序中的幾個
    ·了解java開發(fā)語言在軟件開
    ·如何才能使用Java實現(xiàn)內(nèi)部
    ·Java開發(fā)學(xué)習(xí)小心使用Date
    ·Java程序員應(yīng)該了解那些開
    ·java性能優(yōu)化的一些見解
    ·介紹JDK5.0一些collection
    ·基礎(chǔ)學(xué)習(xí):java中使用存儲
    ·解析c#語言和java語言最相
    ·Java語言學(xué)習(xí):jAVA中 的多
    ·Java是不是應(yīng)該增加新特性
    關(guān)于我們 | 軟件開發(fā) | 下載試用 | 客服中心 | 聯(lián)系我們 | 友情鏈接 | 網(wǎng)站地圖 | 新疆電子地圖 | RSS訂閱
    版權(quán)所有 © 2016 新疆二域軟件開發(fā)網(wǎng) www.pg11qqq.com All Rights Reserved 新ICP備14003571號
    新疆軟件開發(fā)總機(jī):0991-4842803、4811639.
    客服QQ:596589785 ;地址:新疆烏魯木齊北京中路華聯(lián)大廈A-5C 郵編:830000