【发包工具】http多线程发包工具
【发包工具】http多线程发包工具
使用方法:输入地址,发送的内容,线程数,等待时间,每个线程发送的次数,GET/POST请求。
源代码
package com.xmxkkk.httptest;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.TitledBorder;
public class MainWindow extends JFrame {
// HttpClient httpclient;
private JPanel contentPane;
private BorderLayout borderLayout1;
private JPanel panURL;
private JPanel jPanel1;
private JPanel jPanel2;
private GridLayout gridLayout1;
private JTextField URLTxt;
private JSplitPane jSplitPane1;
private JScrollPane jScrollPane1;
private JScrollPane jScrollPane2;
private JTextArea jTextArea1;
private JTextArea jTextArea2;
private JScrollPane jScrollPane3;
private JTextArea jTextArea3;
private JButton jButton1;
private JButton jButton2;
private JPanel jPanel3;
private JRadioButton jRadioGet;
private JRadioButton jRadioPost;
public String method;
private JPanel jPanel4;
private ButtonGroup buttonGroup1;
private JButton jButton3;
private JCheckBox jCheckWrap;
private BorderLayout borderLayout2;
private TitledBorder titledBorder1;
private JTextField thread;
private JTextField num;
private JTextField time;
public MainWindow() {
// httpclient = null;
thread=new JTextField(5);
num=new JTextField(5);
time=new JTextField(5);
borderLayout1 = new BorderLayout();
panURL = new JPanel();
jPanel1 = new JPanel();
jPanel2 = new JPanel();
gridLayout1 = new GridLayout();
URLTxt = new JTextField();
jSplitPane1 = new JSplitPane();
jScrollPane1 = new JScrollPane();
jScrollPane2 = new JScrollPane();
jTextArea1 = new JTextArea();
jTextArea2 = new JTextArea();
jScrollPane3 = new JScrollPane();
jTextArea3 = new JTextArea();
jButton1 = new JButton();
jButton2 = new JButton();
jPanel3 = new JPanel();
jRadioGet = new JRadioButton();
jRadioPost = new JRadioButton();
method = "POST";
jPanel4 = new JPanel();
buttonGroup1 = new ButtonGroup();
jButton3 = new JButton();
jCheckWrap = new JCheckBox();
borderLayout2 = new BorderLayout();
enableEvents(64L);
try {
jbInit();
} catch (Exception e) {
e.printStackTrace();
}
}
private void jbInit() throws Exception {
// httpclient = new HttpClient(this,jTextArea1);
contentPane = (JPanel) getContentPane();
titledBorder1 = new TitledBorder("");
contentPane.setLayout(borderLayout1);
setSize(new Dimension(652, 460));
setTitle("Http testing tool");
jPanel1.setLayout(gridLayout1);
gridLayout1.setColumns(1);
URLTxt.setBackground(SystemColor.desktop);
URLTxt.setForeground(Color.yellow);
URLTxt.setBorder(BorderFactory.createEtchedBorder());
URLTxt.setNextFocusableComponent(jButton1);
// URLTxt.setToolTipText("Input the connection URL");
URLTxt.setMargin(new Insets(5, 5, 5, 5));
URLTxt.setText("http://");
URLTxt.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
URLTxt_actionPerformed(e);
}
});
jSplitPane1.setOrientation(0);
jSplitPane1.setDividerSize(8);
// jTextArea1.setToolTipText("Edit the request xml");
jTextArea1.setText("");
jTextArea2.setText("");
jTextArea3.setForeground(Color.blue);
// jTextArea3.setToolTipText("Recived message");
jTextArea3.setText("");
jTextArea3.setLineWrap(true);
jTextArea3.setWrapStyleWord(true);
jButton1.setText("Send");
jButton1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
jButton1_actionPerformed(e);
}
});
jButton2.setText("Exit");
jButton2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
jButton2_actionPerformed(e);
}
});
jRadioGet.setForeground(new Color(0, 0, 230));
jRadioGet.setText("GET");
jRadioGet.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
jRadioGet_actionPerformed(e);
}
});
jRadioPost.setForeground(new Color(0, 0, 230));
jRadioPost.setText("POST");
jRadioPost.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
jRadioPost_actionPerformed(e);
}
});
panURL.setLayout(borderLayout2);
jButton3.setText("Clear");
jButton3.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
jButton3_actionPerformed(e);
}
});
jCheckWrap.setSelected(true);
jCheckWrap.setText("LineWrap");
jCheckWrap.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
jCheckWrap_actionPerformed(e);
}
});
contentPane.add(jPanel1, "Center");
contentPane.add(panURL, "North");
contentPane.add(jPanel2, "South");
panURL.add(URLTxt, "Center");
jPanel2.add(new JLabel("线程"));
jPanel2.add(thread,null);
jPanel2.add(new JLabel("次数"));
jPanel2.add(num,null);
jPanel2.add(new JLabel("延时"));
jPanel2.add(time,null);
jPanel2.add(jCheckWrap, null);
jPanel2.add(jPanel4, null);
jPanel2.add(jPanel3, null);
jPanel3.add(jRadioGet, null);
jPanel3.add(jRadioPost, null);
jRadioPost.setSelected(true);
buttonGroup1.add(jRadioGet);
buttonGroup1.add(jRadioPost);
jPanel2.add(jButton1, null);
jPanel2.add(jButton3, null);
jPanel2.add(jButton2, null);
jPanel1.add(jSplitPane1, null);
jSplitPane1.add(jScrollPane1, "top");
jSplitPane1.add(jScrollPane3, "bottom");
jScrollPane3.getViewport().add(jTextArea3, null);
jScrollPane1.getViewport().add(jTextArea1, null);
jScrollPane2.getViewport().add(jTextArea2, null);
jSplitPane1.setDividerLocation(100);
}
protected void processWindowEvent(WindowEvent e) {
super.processWindowEvent(e);
if (e.getID() == 201)
System.exit(0);
}
void jButton1_actionPerformed(ActionEvent e) {
// String soMethod = String.valueOf(String.valueOf((new StringBuffer("Method: ")).append(method).append(":\n")));
String url = URLTxt.getText();
String xml = jTextArea1.getText();
String str=thread.getText();
int cnt=1;
if(str==null||str.equals("")){
cnt=1;
thread.setText(cnt+"");
}else{
cnt=Integer.parseInt(str);
thread.setText(cnt+"");
}
String abc=num.getText();
int every=1;
if(abc==null||abc.equals("")){
every=1;
num.setText(every+"");
}else{
every=Integer.parseInt(abc);
num.setText(every+"");
}
String div=time.getText();
int divI=0;
if(div==null||div.equals("")){
divI=0;
time.setText(divI+"");
}else{
divI=Integer.parseInt(div);
time.setText(divI+"");
}
for(int i=0;i -1)
sb.append((char) ch);
rec_string = sb.toString();
rd.close();
urlconn.disconnect();
} catch (Exception e) {
log = String.valueOf(String.valueOf((new StringBuffer("请求错误:"))
.append(e.getMessage()).append(e.toString())));
writeLog(log);
}
return rec_string;
}
private String getMethod() {
if (mwindow == null)
return "GET";
else
return mwindow.method;
}
private void writeLog(String s) {
if (mwindow == null)
System.out.println(s);
else
mwindow.showMsg(String.valueOf(String.valueOf(s)).concat("\n"));
}
public static void main(String args[]) {
}
@Override
public void run() {
for(int i=0;i screenSize.height)
frameSize.height = screenSize.height;
if (frameSize.width > screenSize.width)
frameSize.width = screenSize.width;
frame.setLocation((screenSize.width - frameSize.width) / 2,
(screenSize.height - frameSize.height) / 2);
frame.setVisible(true);
}
public static void main(String args[]) {
try {
//
UIManager.setLookAndFeel(UIManager
.getCrossPlatformLookAndFeelClassName());
UIManager
.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
// SwingUtilities.updateComponentTreeUI(this);
} catch (Exception e) {
e.printStackTrace();
}
new HttpTest();
}
}
【发包工具】http多线程发包工具的更多相关文章
- Java 并发包中的高级同步工具
Java 并发包中的高级同步工具 Java 中的并发包指的是 java.util.concurrent(简称 JUC)包和其子包下的类和接口,它为 Java 的并发提供了各种功能支持,比如: 提供了线 ...
- Mysql多线程性能测试工具sysbench 安装、使用和测试
From:http://www.cnblogs.com/zhoujinyi/archive/2013/04/19/3029134.html 摘要: sysbench是一个开源的.模块化的.跨 ...
- 开源多线程性能测试工具-sysbench
导读 sysbench是一款开源的多线程性能测试工具,可以执行CPU/内存/线程/IO/数据库等方面的性能测试.数据库目前支持MySQL/Oracle/PostgreSQL.本文主要演示Mysql测试 ...
- linux多线程下载工具mwget
linux多线程下载工具mwget 经常使用wget进行文件下载,然而wget的处理速度并不如人意.遇到一些国外的站点,经常慢得像蜗牛一般.然而为了解决这个问题,便有了mwget:m表示multi多线 ...
- CentOS6.4 安装aria2多线程下载工具
aria2是一个Linux下的多线程下载工具,支持HTTP/HTTPS.FTP.BitTorrent.Metalink协议. 平时在linux上下载http上的东西常用如wget.curl命令,但是他 ...
- MySQL多线程备份工具:mydumper
MySQL多线程备份工具:mydumper http://www.orczhou.com/index.php/2011/12/how-to-split-mysqldump-file/ Mydumper ...
- Linux下多线程下载工具myget
[root@superdba ~]# mytgetMytget 0.0.99: A download accelerator for GNU/LinuxUsage: mytget [options]. ...
- Linux 下的多线程下载工具 Axel
Axel 是 Linux 平台下的一款 HTTP/FTP 的高速下载工具,支持多线程以及断点续传,对于一些有速度限制的服务器上下载东西时,Axel 的速度就明显比 wget 要快一些 还有另一个基于 ...
- Java并发多线程 - 并发工具类JUC
安全共享对象策略 1.线程限制 : 一个被线程限制的对象,由线程独占,并且只能被占有它的线程修改 2.共享只读 : 一个共享只读的对象,在没有额外同步的情况下,可以被多个线程并发访问, 但是任何线程都 ...
随机推荐
- repo常用指令
下载 repo 的地址: http://android.git.kernel.org/repo ,可以用 wget http://android.git.kernel.org/repo 或者 curl ...
- django模型创建
定义模型 模型,属性,表,字段之间的关系 一个模型类在数据库中对应一张表,在模型类中定义的属性,对应该模型对照表中的一个字段 定义属性:见下文 创建模型类 元选项 在模型类中定义Meta类,用于设置元 ...
- iOS开发如何在一个透明视图上添加不透明的子控件
相信很多同学都会遇到过这个问题, 当我们弹出一个半透明的遮盖层时, 又想在遮盖层上加一些子视图, 这个时候如果你的遮盖层设置了alpha属性, 你会惊讶的发现, 加载遮盖层上的所有子控件都是透明了, ...
- 记录 am335x 因为 pinmux 配置不对导致 不断的原因
其实很简单,是因为 中断不仅仅需要 gpio 的 input 属性, 还需要 pull_up 的数据 {"gpmc_ad11.gpio0_27", OMAP_MUX_MODE7 | ...
- Android——shape和selector和layer-list的(详细说明 转)
<shape>和<selector>在Android UI设计中经常用到.比如我们要自定义一个圆角Button,点击Button有些效果的变化,就要用到<shape> ...
- Kafka内核中的分布式机制实现
Kafka内核中的分布式机制实现 一个Topic中的所有数据分布式的存储在kafka集群的所有机器(broker)上,以分区(partition)的的形式进行数据存储:每个分区允许存在备份数据/备份分 ...
- Spark算子---实战应用
Spark算子实战应用 数据集 :http://grouplens.org/datasets/movielens/ MovieLens 1M Datase 相关数据文件 : users.dat --- ...
- Java扫描classpath指定包路径下所有class
在写框架时 经常需要扫描classpath指定包路径下带有某个Annotation的类,自己整理了一下 封装成一个工具类了,供大家参考. 源代码ClassPathResourceScanner.jav ...
- 【异常】IOException parsing XML document from class path resource [xxx.xml]
1.IDEA导入项目运行出现异常 org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing ...
- Map总结(HashMap, Hashtable, TreeMap, WeakHashMap等使用场景)
概要 学完了Map的全部内容,我们再回头开开Map的框架图. 本章内容包括:第1部分 Map概括第2部分 HashMap和Hashtable异同第3部分 HashMap和WeakHashMap异同 转 ...