声明一个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. 【内部竞聘】华东/华南 -区域招商高级经理/经理 - 荐才纳贤 - 京东内部论坛 - Powered by Discuz!

    [内部竞聘]华东/华南 -区域招商高级经理/经理 - 荐才纳贤 - 京东内部论坛 - Powered by Discuz! [内部竞聘]华东/华南 -区域招商高级经理/经理   [复制链接]     ...

  2. 对javabean的内省操作

    import java.beans.BeanInfo; import java.beans.IntrospectionException; import java.beans.Introspector ...

  3. HDU 4432 Sum of divisors (进制模拟)

    三个小函数 getdiv();        求因子 getsum();     求平方和 change();     转换成该进制 #include <cstdio> #include ...

  4. linux常用命令大全(转)

    由于记忆力有限,把平时常用的Linux命令整理出来,以便随时查阅: linux 基本命令 ls     (list 显示当前目录下文件和目录 ls -l 详细显示 =ll ) [root@linux ...

  5. 没有找到 mspdb100.dll 的解决办法

    直接从Common7\IDE\下复制这个文件到VC\Bin\下即可解决.(D:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE)

  6. MySQL 5.7版本安装教程-踩坑总结

    下载 MySQL下载地址 选择下载64位(看自己电脑是32位还是64位) 点击下载之后,它会让你登录,没有Oracle账户,跟着它的步骤注册一个就好了. 安装 打开下载好的压缩包解压到你的某一目录下, ...

  7. OpenCV 2.4.9

    2014.4.25 感谢那些參加开发.发送错误报告以及通过其它方式帮助我们的全部人和公司. 源代码如今已经可以从SourceForge和Github上下载了. 2.4.9版本号的帮助文章也更新到如今的 ...

  8. leetcode-WordLadder

    Word Ladder Total Accepted: 10243 Total Submissions: 58160My Submissions Given two words (start and  ...

  9. 娓娓道来c指针 (3)指针和数组

    (3)指针和数组 在c中指针和数组似乎有着千丝万缕的关系.事实上它们不是一回事:指针是指针,数组是数组.两者不同样. 说它们有关系,只是是由于常见这种代码: int main() { int arra ...

  10. storyBoard使用介绍

    storyBoard使用介绍 转载地址:http://www.2cto.com/kf/201210/161737.html 一 .简述 Storyboard是你可以用来定义用户界面的一种新的方式,像x ...