声明一个boolean公共变量,表明当前httpconnection是否得到服务器回应。
  你的连接线程中在连接之前置这个变量为false;
  另起一个监视线程,拿到那个HttpConnection的连接对象,并循环监视这个boolean公共变量。如果指定时间内(20秒后)你的 boolean公共变量还是false,那么就主动置httpconnection=null.这样,那边连接线程就会抛出异常退出来。托福答案 www.jszdsy.com
  写了Timer类来实现。(学习国外一个网站上的写法)
  class Timer extends Thread {
  /** 每个多少毫秒检测一次 */
  protected int m_rate = 100;
  /** 超时时间长度毫秒计算 */
  private int m_length;
  /** 已经运行的时间 */
  private int m_elapsed;
  /**
  * 构造函数
  *
  * @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");
  }
  /**
  * 故意设置为超时,可以在服务器有返回,但是错误返回的时候直接调用这个,当成超时处理
  *
  */
  public synchronized void setTimeOut()
  {
  m_elapsed = m_length+1;
  }
  /**
  */
  public void run() {
  // 循环 www.yzyxedu.com
  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连接线程调用的同是调用 new Timer(20*1000)。start();
  需要重新计时时候调用timer.reset();

java中处理http连接超时的方法的更多相关文章

  1. java中常用的字符串的截取方法

    java中常用的字符串的截取方法   1.length() 字符串的长度 例:char chars[]={'a','b'.'c'}; String s=new String(chars); int l ...

  2. Linux Vsftpd 连接超时解决方法

    Linux Vsftpd 连接超时解决方法 2013-11-13 10:58:34|  分类: 默认分类|举报|字号 订阅     解决方法(http://www.lingdus.com/thread ...

  3. java中获取日期和时间的方法总结

    1.获取当前时间,和某个时间进行比较.此时主要拿long型的时间值. 方法如下:  要使用 java.util.Date .获取当前时间的代码如下 Date date = new Date(); da ...

  4. java中遍历map对象的多种方法

    在Java中如何遍历Map对象   How to Iterate Over a Map in Java 在java中遍历Map有不少的方法.我们看一下最常用的方法及其优缺点. 既然java中的所有ma ...

  5. Java中的五种单例模式实现方法

    [代码] Java中的五种单例模式实现方法   1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 2 ...

  6. 谈谈java中遍历Map的几种方法

    java中的map遍历有多种方法,从最早的Iterator,到java5支持的foreach,再到java8 Lambda,让我们一起来看下具体的用法以及各自的优缺点 先初始化一个map public ...

  7. Java中产生随机数的两个方法

    Java中产生随机数的两个方法 一.利用random方法来生成Java随机数. 在Java语言中生成Java随机数相对来说比较简单,因为有一个现成的方法可以使用.在Math类中,Java语言提供了一个 ...

  8. Java中创建数组的几种方法

    Java中创建数组的几种方法 public static void main(String[] args) { //创建数组的第一种方法 int[] arr=new int[6]; int intVa ...

  9. Java中遍历map的四种方法 - 转载

    在Java中如何遍历Map对象 How to Iterate Over a Map in Java 在java中遍历Map有不少的方法.我们看一下最常用的方法及其优缺点. 既然java中的所有map都 ...

随机推荐

  1. 短随机唯一id生成参考

    <?php function getRandOnlyId() { //新时间截定义,基于世界未日2012-12-21的时间戳. $endtime=1356019200;//2012-12-21时 ...

  2. weekend110(Hadoop)的 第七天笔记

    (2015年1月31日) 课程目录 01-storm基本概念 02-storm编程规范及demo编写 03-storm的topology提交执行 04-kafka介绍 05-kafka集群部署及客户端 ...

  3. Just a Hook

      Just a Hook 题目大意:原来有N个铜棍, 一个人有种能力可以把一个区间的棍变成铜,银或者金的,价值分别是1,2,3, 最后求出总价值,没啥好说的,赤裸裸的线段树: Time Limit ...

  4. winfrom 底层类 验证码 分类: C# 2014-12-17 11:18 258人阅读 评论(0) 收藏

    效果图: 底层类: /// <summary>         /// 生成验证码         /// </summary>         /// <param n ...

  5. 【设计模式 - 17】之中介者模式(Mediator)

    1      模式简介 中介者模式的定义: 用一个中介者对象封装一系列的对象交互,中介者使各对象不需要显式地相互作用,从而使耦合松散,而且可以独立地改变它们之间的交互. 中介者模式中的组成部分: 1. ...

  6. Android 颜色渲染(一) 颜色选择器 ColorPickerDialog剖析

    版权声明:本文为博主原创文章,未经博主允许不得转载. Android 颜色选择器之ColorPickerDialog剖析 有这样一个需求,可以让用户自定义背景颜色,这就需要提供一个颜色选择器给用户. ...

  7. Java的演变过程

    1. 1996.01.23 JDK1.0 代号Oak:212个类.8个包: 2. 1997.02.19 JDK1.1 504个类.23个包: Java Bean.远程方法调用(RMI).JAR文件格式 ...

  8. android开发之AlertDialog点击按钮之后不消失 分类: android 学习笔记 2015-07-15 18:07 89人阅读 评论(0) 收藏

    最近有这样一个需求,我需要用户在一个弹出框里输入密码来验证,验证成功当然好说,但是如果验证失败则需要把alertdialog的标题改为"密码错误,请重新输入",并且这个alertd ...

  9. svn 树冲突

    情况类似如下:(其中 removed_directory 是你工作的某个目录)  代码如下 复制代码 $svn statusD     C removed_directory>   local ...

  10. Java——(八)Map之LinkedHashMap、TreeMap、EnumMap实现类

    ------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 1.LinkedHashMap实现类 LinkedHashMap需要维护意识的插入顺序,因此性能 ...