知识大全 一个用JAVA写测算服务器响应速度程序

Posted

篇首语:博观而约取,厚积而薄发。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 一个用JAVA写测算服务器响应速度程序相关的知识,希望对你有一定的参考价值。

一个用JAVA写测算服务器响应速度程序  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

   任务描述

  需要做一个程序 对某一服务器运行的web server进行测算 看对提出的request做出相应的时间 并且在多个request同时提出时的响应时间

   计划

  因为java sdk中包含有比较全面的class能够对等多种协议的处理方法进行了封装 用起来比较方便 能够在比较短的时间内快速开发出这一测算工具

  需要 个功能

  a 因为不是仅仅对一个web server或者一个form进行测算 所以需要程序能够灵活处理 完成各种工作 我采用了配置文件的形式 让程序从配置文件中读取数据 并作相应动作

  b 需要采用多线程方式 对同一个web server提交多次request

   开发过程

  (读者可以跟随这一过程 自己动手写代码 到全文结束 就能有一个完整可用的程序了)

  主要的工作都有TestThread来完成 代码如下           class TestThread implements Runnable  Parameter param; TestThread(Parameter par)  param = par;  public void run()  long time  = new Date() getTime(); try  URL target = param url; HttpURLConnection conn = (HttpURLConnection) target openConnection(); conn setRequestMethod(thod); int i; for( i =  ; i < param length; i++ )  conn setRequestProperty(param key[i]  param value[i]);  nnect(); BufferedReader in = new BufferedReader( new InputStreamReader(conn getInputStream())); String inputLine; while( (inputLine = in readLine()) != null );  catch(Exception e)   long time  = new Date() getTime(); System out println(time    time );           class TestThread implements Runnable 而不是用extends Thread 的好处是独立设计一个类 这个类还可以extends其它的class 而不是单独的extends Thread 另外一个好处是 可以把处理方法放在各个不同的方法中 然后在void run()中调用 程序结构比较清晰

  程序工作如下

  在初始化一个TestThread实例的时候 接受一个Parameter参数(稍候介绍) 并在线程启动时 计算开始的时间 向目标机器发送请求包 接受目标机器的返回结果 再次计算时间 并得到两次时间之差 这就是服务器的响应时间

  具体程序可以自己看懂 就不多说了

    class Parameter  URL url; String[] key; String[] value; String method; int length =  ; public void addPair(String k  String v)  Array set(key  length  k); Array set(value  length  v); length++;          是用来传递参数的一个类 参数是主程序从文件中读出来并存入这个类的一个对象里 然后通过初始化TestThread传递给它的对象

    public class TestServer  static int loopTimes =  ; public Parameter readFromArgFile(String str) FileInputStream fileInput; BufferedReader br; Parameter param = new Parameter(); try  fileInput = new FileInputStream(new File(str)); br = new BufferedReader( new InputStreamReader( fileInput )); String line; while( (line = br readLine()) != null )  if( line startsWith( URL ) == true && line indexOf( = ) >=  )  int f = line indexOf( = ); String urlstring = line substring(f+ ); urlstring trim(); param url = new URL(urlstring);  else if( line startsWith( METHOD ) == true && line indexOf( = ) >=  )  int f = line indexOf( = ); String method = line substring(f+ ); method trim(); thod = method;  else if( line indexOf( = ) !=   )  int f = line indexOf( = ); String key = line substring(  f ); String value = line substring(f+ ); param addPair(key trim()  value trim());   fileInput close(); br close();  catch(FileNotFoundException e)  System out println( File   + str +   not found );  catch(NullPointerException e)   catch(IOException e)  System out println(e);  return param;  public static void main(String[] args)  int i; int j; Parameter param; TestServer tester = new TestServer(); for(i =  ; i < Array getLength(args); i++)  param = tester readFromArgFile(args[i]); for(j =  ; j < loopTimes; j++)  Thread th = new Thread(new TestThread(param)); th start();             主程序main也比较简单 从命令行参数中读取文件名 并依次打开 读取其中的配置参数 创建Parameter对象 并传递给TestThread对象 然后启动TestThread线程 需要注意的是其中的错误处理 当发现某个文件读写错误的时候 是跳过这个文件而读取下一个文件 而不是简单的退出

  就这么简单 (当然 适当的改写一下 就可以做一个加贴机或者灌水机之类的东东 那是你的爱好 和我无关 ))

  程序全文列在最后 并附上了说明

cha138/Article/program/Java/hx/201311/27192

相关参考

知识大全 用Java写一个在线金山词霸程序

用Java写一个在线金山词霸程序  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  代码贴上其它的就

知识大全 为Java应用程序添加退出事件响应

为Java应用程序添加退出事件响应  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  一个完整的Ja

知识大全 用Java实现多线程服务器程序

用Java实现多线程服务器程序  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  摘要在Java出现

知识大全 用shell和java实现自动部署

  公司用到了rackspace的cloudserver做为压力测试的服务器但是一旦启动就开始收费一个小时刀因此要求用的时候打开不用的时候关掉  但是遇到一个问题就是这样的话在上边部署应用程序和软件就

知识大全 用java语言编程序:计算1+1/2!+1/3!+1/4,简单语句就好,不要写的太复杂哦,谢谢哦

用java语言编程序:计算1+1/2!+1/3!+1/4,简单语句就好,不要写的太复杂哦,谢谢哦!publicclassTestpublicstaticvoidmain(Stringargs[])in

知识大全 java操作word

  最近在做项目的时候需要这么一个功能客户有一大堆word格式的模板需要我们用程序向模板里面填充一些数据如果是直接重新写一个Word用POI或Itext都可以搞定关键是读取并解析而且Word里有表格图

知识大全 用C#写一个下载程序

用C#写一个下载程序  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!cha138/Arti

知识大全 用java 实现一个简单的web 服务器

  importjavaioIOException;importServerSocket;importSocket;  /** *Socket+Thread+FileIO *&nb

知识大全 用Java Swing作一个日历控制程序

用JavaSwing作一个日历控制程序  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  日期是最基

知识大全 用ASP.Net写一个发送ICQ信息的程序

用ASP.Net写一个发送ICQ信息的程序  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  这里我