
25.09.2009, 20:52
|
|
Познавший АНТИЧАТ
Регистрация: 24.06.2008
Сообщений: 1,996
Провел на форуме: 6075534
Репутация:
2731
|
|
Код:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
#include <process.h>
#include <stdio.h>
#include <winsock2.h>
#include <iostream>
#include <string>
#include <vector>
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "sSkinManager"
#pragma link "sSkinProvider"
#pragma resource "*.dfm"
TForm1 *Form1;
volatile long uid = 1;
char mystring [1024];
CRITICAL_SECTION cs;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
int i;
void tfunc(void *argv)
{
int myID = InterlockedIncrement(&uid) - 1;
char request[1024*5], response[1024*5];
int first, second;
char* headers;
sockaddr_in s_a;
WSADATA wd;
WSAStartup( MAKEWORD( 2, 2 ), &wd );
while(myID<15)
{
SOCKET s = socket( AF_INET, SOCK_STREAM, 0 );
if (s == INVALID_SOCKET)
ShowMessage("INVALID");
s_a.sin_addr.s_addr = inet_addr( "89.188.109.206" );
s_a.sin_port = htons( 80 );
s_a.sin_family = AF_INET;
if (connect( s, (struct sockaddr*)&s_a, sizeof( s_a ) ) == SOCKET_ERROR)
ShowMessage("Bad Connect!");
sprintf( request, "GET /forum/profile.php?mode=viewprofile&u=%i HTTP/1.1\r\nHost: tfile.ru\r\nConnection: Close\r\n\r\n", myID);
send( s, request, strlen( request ), 0 );
//EnterCriticalSection( &cs );
for(i=0;i<=4;i++)
recv( s, response, 1024 , 0 );
//LeaveCriticalSection( &cs );
closesocket( s );
}
WSACleanup(); //
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
InitializeCriticalSection( &cs );
for(i=1;i<=5;i++)
{
_beginthread(tfunc, 0, NULL);
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
ShowMessage("hello");
}
//---------------------------------------------------------------------------
Вобщем вот весь код... Теперь я хочу, чтобы каждый поток своего юзера парсил, но что я только не плюсовал, чтобы айди увеличивался - ничего не помогает. Все потоки парсят 1-5 юзера. Да и с цикла while() не выходит...
|
|
|