JAVA如何模拟网络超时?

问题描述

JAVA如何模拟网络超时?

如题,想测试下在各种网络条件下程序的运行情况,比如我以HttpClient发起请求想测试下超时状态该如何做?

解决方案

最简单的办法,把网线断开。

解决方案二:

线程啊………………………………

解决方案三:

http://zhang247124629.iteye.com/blog/1490102

解决方案四:

http://blog.csdn.net/ago52030/article/details/46798981

时间: 2024-12-03 12:37:19

JAVA如何模拟网络超时?的相关文章

Java程序运行超时后退出或进行其他操作的实现

当程序进入死循环或者由于其他原因无法自行终止的时候,就需要强制退出程序了. 对于开发软件 Eclipse ,在程序执行超时后,可以点击 Terminate 按钮强制退出. 那么,我们可不可以通过程序设置一定的时间,当程序运行超过该时长后自行终止或者进行其他操作呢? 查了大量资料后发现,Future类就能满足这个需求. Future类中重要方法包括get()和cancel(). get()获取数据对象,如果数据没有加载,就会阻塞直到取到数据,而 cancel()是取消数据加载. 另外一个get(t

JAVA Socket超时浅析(转)

  套接字或插座(socket)是一种软件形式的抽象,用于表达两台机器间一个连接的"终端".针对一个特定的连接,每台机器上都有一个"套接字",可以想象它们之间有一条虚拟的"线缆".JAVA有两个基于数据流的套接字类:ServerSocket,服务器用它"侦听"进入的连接:Socket,客户端用它初始一次连接.侦听套接字只能接收新的连接请求,不能接收实际的数据包.   套接字是基于TCP/IP实现的,它是用来提供一个访问TCP的

Java编程那些事儿97——多线程使用示例2

12.3.2 模拟网络数据发送 在实际的网络程序开发中,由于网络通讯一般都需要消耗时间,所以网络通讯的内容一般都启动专门的线程进行处理. 这样,在一个最简单的网络程序程序中,至少就包含了两个线程:处理界面绘制和接收用户输入的系统线程,以及至少一个网络通讯线程. 下面以一个简单的模拟程序,实现模拟网络数据的发送功能,关于更详细的网络编程中线程的使用,可以参看后续的网络编程章节. 在该示例代码中,用户在控制台输入需要发送的内容,程序接收到用户的输入以后,启动一个单独的线程进行网络通讯,然后用户可以继

Linux高级流量控制tc使用

在做MHA测试的时候,有一个重要的环节就是测试MHA Manager节点和Master节点的网络情况,如果产生了抖动,那么MHA本身提供了一个参数secondary_check来保证,但是如果你的部署环境中是一主一从的话,这个参数就不会起作用了,因为latest slave和oldest slave是同一个库,简单来说,连不上就是连不上了,至于切还是不切,这个还不好说.我们测试的场景下,有时候切,有时候不切.所以我们原本测试的MHA0.57版本就降级为了0.56,仔细测试发现,其实也存在这样的问

Java网络编程从入门到精通(16):客户端套接字(Socket)的超时

客户端套接字的超时(timeout)就是指在客户端通过Socket和服务器进行通讯的过程中,由于网络延迟,网络阻塞等原因,造成服务器并未及时响应客户端的一种现象.在一段时间后,客户端由于未收到服务端的响应而抛出一个超时错误: 其中客户端所等待的时间就是超时时间. 由于生产超时错误的一端都是被动端:也就是说,这一端是在接收数据,而不是发送数据.对于客户端Socket来说,只有两个地方是在接收数据:一个是在连接服务器时:另一个是在连接服务器成功后,接收服务器发过来的数据时.因此,客户端超时也分为两种

java使用Jsoup连接网站超时的解决方法_java

今天做了一个Jsoup解析网站的项目,使用Jsoup.connect(url).get()连接某网站时偶尔会出现java.net.SocketTimeoutException:Read timed out异常.原因是默认的Socket的延时比较短,而有些网站的响应速度比较慢,所以会发生超时的情况. 解决方法: 链接的时候设定超时时间即可.doc = Jsoup.connect(url).timeout(5000).get();5000表示延时时间设置为5s. 测试代码如下:1,不设定timeou

浅谈java中异步多线程超时导致的服务异常_java

在项目中为了提高大并发量时的性能稳定性,经常会使用到线程池来做多线程异步操作,多线程有2种,一种是实现runnable接口,这种没有返回值,一种是实现Callable接口,这种有返回值. 当其中一个线程超时的时候,理论上应该不 影响其他线程的执行结果,但是在项目中出现的问题表明一个线程阻塞,其他线程返回的接口都为空.其实是个很简单的问题,但是由于第一次碰到,还是想了一些时间的.很简单,就是因为阻塞的那个线 程没有释放,并发量一大,线程池数量就满了,所以其他线程都处于等待状态. 附上一段自己写的调

Aliyun OSS Java SDK超时时间设置

Aliyun OSS Java SDK发送一个请求,有5个阶段: 阶段Ⅰ 从连接池中获取连接,如果使用的连接已经达到最大连接数,则等待直到有连接释放,或达到最大超时时间,抛出异常ConnectionPoolTimeoutException.如果设置了比较大最大连接数,但是并不想让连接池中真正占用很多连接,SDK会自动关闭闲置时间较长的连接. 最大连接数默认1024个,使用ClientConfiguration.setMaxConnections设置. 从连接池中获取默认不超时,可以通过Clien

如何自定义一个java超时机制

问题描述 如何自定义一个java超时机制 我有个远程测试数据库是否连接成功的接口,该接口已被实现好,不可以改动,但是由于 设计缺陷没有超时机制,所以执行时间不能保证. 我在调用该方法的时候想加入超时的机制,怎么实现? 坐等大神. 解决方案 自己弄个线程,把连接过程放到里面,线程里面及时,达到你的要求,如何还没有收到接通状态,就算超时 解决方案二: 如果底层的库有超时设置,那么你调用它.否则可以用另一个个线程+定时器,或者轮询接口状态.如果没有阻塞的话. 解决方案三: http://zhidao.