版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年湖南劳动人事职业学院单招职业倾向性测试题库及答案1套
- 2026年哈尔滨应用职业技术学院单招职业适应性测试模拟测试卷及答案1套
- 2025广东省疾病预防控制中心招聘科研助理1人(公共基础知识)测试题附答案
- 2026宁波市江北区面向2026届高校毕业生招聘高层次和紧缺人才13人笔试参考题库及答案解析
- 2025年甘肃省定西市陇西县福星中心卫生院高塄分院招聘乡村医生(公共基础知识)综合能力测试题附答案
- 2026中国安能集团科工有限公司招聘6人笔试参考题库及答案解析
- 2025河南省人力资源开发中心有限公司招聘1人考试题库附答案
- 2025年甘肃省陇南师范学院第二批高层次人才和急需紧缺专业技术人才引进(20人)参考题库附答案
- 2025广东广州市天河区灵秀小学招聘英语教师1人(学校自筹经费)考试历年真题汇编附答案
- 2025年保山市部分医疗卫生事业单位招聘博士研究生(10人)笔试备考题库附答案
- 广东省大湾区2023-2024学年高一上学期期末生物试题【含答案解析】
- 第四单元地理信息技术的应用课件 【高效课堂+精研精讲】高中地理鲁教版(2019)必修第一册
- 鲁科版高中化学必修一教案全册
- 提高隧道初支平整度合格率
- 2023年版测量结果的计量溯源性要求
- 建筑能耗与碳排放研究报告
- GB 29415-2013耐火电缆槽盒
- 中国古代经济试题
- 软件定义汽车:产业生态创新白皮书
- 磷石膏抹灰专项施工方案
- 水电水利工程施工质量管理培训讲义
评论
0/150
提交评论