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

~

   任务描述

  需要做一个程序 对某一服务器运行的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线程 需要注意的是其中的错误处理 当发现某个文件读写错误的时候 是跳过这个文件而读取下一个文件 而不是简单的退出

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

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

lishixinzhi/Article/program/Java/hx/201311/27192



一个用JAVA写测算服务器响应速度程序
答:需要做一个程序 对某一服务器运行的web server进行测算 看对提出的request做出相应的时间 并且在多个request同时提出时的响应时间 计划 因为java sdk中包含有比较全面的class能够对等多种协议的处理方法进行了封装 用起来比较方便 能够在比较短的时间内快速开发出这一测算工具 需要 个功能 a 因为不是仅仅...

已经搭建好的服务器(用JAVA写的)怎么测试它有没有响应?
答:socket服务?自己写个发包的测试程序,或者晚上找一个socket发包程序,

如何用Java实现Web服务器?
答:1、写一个处理网络请求连接请求实体类、一个和网络请求连接响应实体类 2、写一个容器主类,包括启动监听端口等 3、写容器的接口,以及注解相关的url附加类便于让应用servlet 4、写一个app测试servlet,类似tomcat中跑的war包 如果你监听的端口是8888,那么就可以访问localhost:8888/app,就可以测试了 结...

编写一个JAVA计算器程序
答:import java.awt.*; import java.awt.event.*; import java.lang.*; import javax.swing.*; public class Counter extends Frame { //声明三个面板的布局 GridLayout gl1,gl2,gl3; Panel p0,p1,p2,p3; JTextField tf1; TextField tf2; Button b0,b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12,b13,...

用JAVA编写一个简单的计算器,要求如下:
答:以下是上图计算器的代码:package Computer;import java.awt.BorderLayout;import java.awt.Color;import java.awt.Container;import java.awt.Font;import java.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.util.Stack;import javax.swing.JApplet;i...

用JAVA编写一个计算器
答:用JAVA编写一个计算器 70 实现类似Windows操作系统“计算器”的功能。可以完成任意的通常借助手持计算器来完成的标准运算。“计算器”可用于基本的算术运算,比如加减运算等。同时它还具有科学计算器的功能,比... 实现类似Windows操作系统“计算器”的功能。可以完成任意的通常借助手持计算器来完成的标准运算。“计算...

、使用JAVA语言编写一个简易的计算器
答:我写了个整数可以使用的, 你可以研究一下, 添入小数部分 功能和window7自带的那个一样 import java.awt.BorderLayout;import java.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.J...

用java实现一个简单的计算器。
答:private final String[] str = { "7", "8", "9", "/", "4", "5", "6", "*","1","2", "3", "-", ".", "0", "=", "+" };// Build buttons.JButton[] buttons = new JButton[str.length];// For cancel or reset.JButton reset = new JButton("CE");// ...

自己在java建了服务器别人怎么进来服务器呢?
答:在Java中创建了一个服务器之后,要让其他人能够访问该服务器,通常涉及以下几个步骤:确保服务器已启动并监听:使用Java编写的网络服务器,如之前提到的,通常使用ServerSocket来监听特定的端口。例如,ServerSocket serverSocket = new ServerSocket(8080); 这行代码将服务器绑定到8080端口上。确保服务器...

用JAVA实现模拟HTTP请求,得到服务器响应时间等参数
答:之前看过一下。。用纯java控制台实现http请求的。。 好像只是1.6 update * 的产品。

IT评价网,数码产品家用电器电子设备等点评来自于网友使用感受交流,不对其内容作任何保证

联系反馈
Copyright© IT评价网