国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

一個用JAVA寫的測算服務器響應速度程序

2019-11-17 04:59:32
字體:
來源:轉載
供稿:網友
1. 任務描述 
需要做一個程序,對某一服務器運行的web server進行測算,看對提出的request做出相應的時間,并且在多個request同時提出時的響應時間。 

2. 計劃 
因為java sdk中包含有比較全面的class能夠對http等多種協議的處理方法進行了封裝,用起來比較方便,能夠在比較短的時間內快速開發出這一測算工具。 

需要2個功能: 
a. 因為不是僅僅對一個web server或者一個form進行測算,所以需要程序能夠靈活處理,完成各種工作。我采用了配置文件的形式,讓程序從配置文件中讀取數據,并作相應動作。 
b.需要采用多線程方式,對同一個web server提交多次request. 

3.開發過程 
(讀者可以跟隨這一過程,自己動手寫代碼,到全文結束,就能有一個完整可用的程序了) 
主要的工作都有TestThread來完成。代碼如下: 
class TestThread implements Runnable { 
Parameter param; 
TestThread(Parameter par) { 
param = par; 

public void run() { 
long time1 = new Date().getTime(); 
try { 
URL target = param.url; 
HttpURLConnection conn = (HttpURLConnection) target.openConnection(); 
conn.setRequestMethod(param.method); 
int i; 
for( i = 0; i < param.length; i++ ) { 
conn.setRequest
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 = 0; i < Array.getLength(args); i++) { 
param = tester.readFromArgFile(args[i]); 
for(j = 0; j < loopTimes; j++) { 
Thread th = new Thread(new TestThread(param)); 
th.start(); 





主程序main也比較簡單,從命令行參數中讀取文件名,并依次打開,讀取其中的配置參數,創建Parameter對象,并傳遞給TestThread對象,然后啟動TestThread線程。需要注意的是其中的錯誤處理,當發現某個文件讀寫錯誤的時候,是跳過這個文件而讀取下一個文件,而不是簡單的退出。 

就這么簡單。(當然,適當的改寫一下,就可以做一個加貼機或者灌水機之類的東東,那是你的愛好,和我無關:-)) 
程序全文列在最后,并附上了說明 
------------------------------------------------------------------------------- 
/**************************************************************** 
Program: TestServer.java 
Descr

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 = 0; i < Array.getLength(args); i++) { 
param = tester.readFromArgFile(args[i]); 
for(j = 0; j < loopTimes; j++) { 
Thread th = new Thread(new TestThread(param)); 
th.start(); 




class Parameter { 
URL url; 
String[] key; 
String[] value; 
String method; 
int length = 0; 
public void addPair(String k, String v) { 
Array.set(key, length, k); 
Array.set(value, length, v); 
length++; 


class TestThread implements Runnable { 
Parameter param; 
TestThread(Parameter par) { 
param = par; 

public void run() { 
long time1 = new Date().getTime(); 
try { 
URL target = param.url; 
HttpURLConnection conn = (HttpURLConnection) target.openConnection(); 
conn.setRequestMethod(param.method); 
int i; 
for( i = 0; i < param.length; i++ ) { 
conn.setRequestProperty(param.key[i], param.value[i]); 

conn.connect(); 
BufferedReader in = new BufferedReader( 
new InputStreamReader(conn.getInputStream())); 
String inputLine; 
while( (inputLine = in.readLine()) != null ); 

catch(Exception e) { 

long time2 = new Date().getTime(); 
System.out.println(time2 - time1); 

}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 南城县| 榆树市| 凤山市| 涟源市| 阿鲁科尔沁旗| 康平县| 宁夏| 临安市| 财经| 青冈县| 安阳市| 合川市| 从江县| 荣昌县| 揭东县| 会理县| 江川县| 泾阳县| 新营市| 信宜市| 大庆市| 历史| 商城县| 南乐县| 西乡县| 玉田县| 天门市| 德阳市| 邯郸市| 湘潭市| 邢台县| 繁昌县| 新龙县| 海兴县| 屯留县| 图片| 江源县| 大港区| 广水市| 绵阳市| 始兴县|