售后服务一个用JAVA写的测算服务器响应速度程序_第1页
售后服务一个用JAVA写的测算服务器响应速度程序_第2页
售后服务一个用JAVA写的测算服务器响应速度程序_第3页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、售后服务) 一个用 JAVA 写的测算服务器响应速度 程序1. 任务描述需要做壹个程序,对某壹服务器运行的 webserver 进行测算,见对提出的 request 做出相 应的时间,且且于多个 request 同时提出时的响应时间。2. 计划因为 javasdk 中包含有比较全面的 class 能够对 http 等多种协议的处理方法进行了封装, 用 起来比较方便,能够于比较短的时间内快速开发出这壹测算工具。需要 2 个功能:a. 因为不是仅仅对壹个 webserver 或者壹个 form 进行测算,所以需要程序能够灵活处理, 完成各种工作。我采用了配置文件的形式,让程序从配置文件中读取数据,

2、且作相应动作。b. 需要采用多线程方式,对同壹个 webserver 提交多次 request.3. 开发过程 (读者能够跟随这壹过程,自己动手写代码,到全文结束,就能有壹个完整可用的程序了) 主要的工作均有 TestThread 来完成。代码如下:classTestThreadimplementsRunnableParameterparam;TestThread(Parameterpar)param=par;publicvoidrun()longtime1=newDate().getTime();tryURLtarget=param.url;HttpURLConnectionconn=(Ht

3、tpURLConnection)target.openConnection();conn.setRequestMethod(param.method);inti;for(i=0;i < param.length;i+)conn.setRequestProperty(param.keyi,param.valuei);conn.connect();BufferedReaderin=newBufferedReader(newInputStreamReader(conn.getInputStream();StringinputLine;while(inputLine=in.readLine()!

4、=null);catch(Exceptione)longtime2=newDate().getTime();classTestThreadimplementsRunnable, 而不是用 extendsThread, 的好处是独立设计壹个 类,这个类仍能够 extends 其它的 class, 而不是单独的 extendsThread. 另外壹个好处是, 能够把处理方法放于各个不同的方法中,然后于 voidrun() 中调用,程序结构比较清晰。 程序工作如下: 于初始化壹个 TestThread 实例的时候,接受壹个 Parameter 参数(稍候介绍) ,且于线程 启动时,计算开始的时间,向

5、目标机器发送请求包,接受目标机器的返回结果,再次计算时 间,且得到俩次时间之差,这就是服务器的响应时间。 具体程序能够自己见懂,就不多说了。classParameterURLurl;Stringkey;Stringvalue;Stringmethod;intlength=0;publicvoidaddPair(Stringk,Stringv)Array.set(key,length,k);Array.set(value,length,v);length+;是用来传递参数的壹个类。参数是主程序从文件中读出来且存入这个类的壹个对象里,然后 通过初始化 TestThread 传递给它的对象。publ

6、icclassTestServerstaticintloopTimes=500; publicParameterreadFromArgFile(Stringstr)FileInputStreamfileInput;BufferedReaderbr;Parameterparam=newParameter();tryfileInput=newFileInputStream(newFile(str);br=newBufferedReader(newInputStreamReader(fileInput);Stringline;while(line=br.readLine()!=null)if(lin

7、e.startsWith("URL")=true&&line.indexOf("=") > =3) intf=line.indexOf("=");Stringurlstring=line.substring(f+1);urlstring.trim();param.url=newURL(urlstring);elseif(line.startsWith("METHOD")=true&&line.indexOf("=") > =3)intf=line.in

8、dexOf("=");Stringmethod=line.substring(f+1);method.trim();param.method=method;elseif(line.indexOf("=")!=-1)intf=line.indexOf("=");Stringkey=line.substring(0,f-1);Stringvalue=line.substring(f+1);param.addPair(key.trim(),value.trim();fileInput.close();br.close();catch(Fil

9、eNotFoundExceptione)catch(NullPointerExceptione)catch(IOExceptione)returnparam;publicstaticvoidmain(Stringargs)inti;intj;Parameterparam;TestServertester=newTestServer();for(i=0;i < Array.getLength(args);i+) param=tester.readFromArgFile(argsi);for( j=0;j < loopTimes;j+)Threadth=newThread(newTes

10、tThread(param);th.start();主程序 main 也比较简单, 从命令行参数中读取文件名, 且依次打开, 读取其中的配置参数, 创建 Parameter 对象,且传递给 TestThread 对象,然后启动 TestThread 线程。需要注意 的是其中的错误处理, 当发现某个文件读写错误的时候, 是跳过这个文件而读取下壹个文件, 而不是简单的退出。就这么简单。 (当然,适当的改写壹下,就能够做壹个加贴机或者灌水机之类的东东,那是你 的爱好,和我无关: - )程序全文列于最后,且附上了说明/*Program:T estServer.javaDescription:sendr

11、equestsinmultiplethreadstoservertotestitsresponsesdelayanceAuthor:ariesramDate:Aug23,2001Usage:javaTestServerfile1file2.fileformat:URL=FullURLofformMETHOD=GETPOST.key1=value1key2=value2andsoon.* publicclassTestServerstaticintloopTimes=500;publicParameterreadFromArgFile(Stringstr)FileInputStreamfileI

12、nput;BufferedReaderbr;Parameterparam=newParameter();tryfileInput=newFileInputStream(newFile(str);br=newBufferedReader(newInputStreamReader(fileInput);Stringline;while(line=br.readLine()!=null)if(line.startsWith("URL")=true&&line.indexOf("=") > =3) intf=line.indexOf(&qu

13、ot;=");Stringurlstring=line.substring(f+1);urlstring.trim();param.url=newURL(urlstring);elseif(line.startsWith("METHOD")=true&&line.indexOf("=") > =3) intf=line.indexOf("=");Stringmethod=line.substring(f+1);method.trim();param.method=method;elseif(line.i

14、ndexOf("=")!=-1)intf=line.indexOf("=");Stringkey=line.substring(0,f-1);Stringvalue=line.substring(f+1);param.addPair(key.trim(),value.trim();fileInput.close();br.close();catch(FileNotFoundExceptione)catch(NullPointerExceptione)catch(IOExceptione)returnparam;publicstaticvoidmain(S

15、tringargs)inti;intj;Parameterparam;TestServertester=newTestServer(); for(i=0;i < Array.getLength(args);i+) param=tester.readFromArgFile(argsi);for( j=0;j < loopTimes;j+)Threadth=newThread(newTestThread(param);th.start();classParameterURLurl;Stringkey;Stringvalue;Stringmethod;intlength=0;public

16、voidaddPair(Stringk,Stringv)Array.set(key,length,k);Array.set(value,length,v);length+;classTestThreadimplementsRunnableParameterparam;TestThread(Parameterpar)param=par;publicvoidrun() longtime1=newDate().getTime();tryURLtarget=param.url;HttpURLConnectionconn=(HttpURLConnection)target.openConnection();conn.setRequestMethod(param.method);inti;for(i=0;i < par

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论