|
прокси в многопоточной программе - Вопросы и ответы, обсуждения - Ваши вопросы по Pascal/Delphi только в данном разделе |
07.08.2012, 12:51
|
#1
|
|
|
|
Сержант
|
Регистрация: 09.08.2010
Сообщений: 143
Популярность: 4928
Сказал(а) спасибо: 382
Поблагодарили 254 раз(а) в 175 сообщениях
|
прокси в многопоточной программе
Пишу многопоточный чекер с проксями, многопоточность написана, работает как часы, но вот когда подключаешь прокси не валидные акки в валидный записывает(и на оборот), до конца по всему списку аккаунтов не доходит(при большом кол-во). Что не так? и как исправить..
Вот код потока
Код:
procedure TNewThread.Execute;
var CurAcc:integer;
data:TstringList;
http:TIdHttp;
ps, pp,resultt:string;
begin
while Work do
begin
CS.Enter;
inc(tp);
Inc(Acc);
if Acc<Accounts.Count then CurAcc:=Acc else Work:=false;
if tp=Proxys.Count-1 then tp:=0;
CS.Leave;
if Work then
begin
FAcc:= Copy(Accounts[CurAcc],1,Pos(';',Accounts[CurAcc])-1);
FPas:= Copy(Accounts[CurAcc],Pos(';',Accounts[CurAcc])+1,Length(Accounts[CurAcc]));
ps:=Copy(Proxys[tp], 1, Pos(':',Proxys[tp])-1); //Копируем адрес
pp:=Copy(Proxys[tp], Pos(':', Proxys[tp])+1, Length(Proxys[tp])); //Копируем порт
http := TidHTTP.Create;
Data := TStringlist.Create();
try
data.add('loginForm_default_username='+FAcc);
data.add('loginForm_default_password='+FPas);
http.HandleRedirects:=true;
http.ProxyParams.ProxyServer:=ps;
http.ProxyParams.ProxyPort:=strtoint(pp);
try
resultt:=http.Post('http://darkorbit.ru/?locale=ru&aid=0',data);
except
rez:=0;
end;
if pos('loginErrorMessage',resultt)<>0 then rez:=-1
else
if pos('http://ru1.darkorbit.bigpoint.com/GameAPI.php',resultt)<>0 then rez:=1
else
rez:=0;
Application.ProcessMessages;
HTTP.Free;
data.Free;
finally
end;
Synchronize(Sync);
end;
end;
dec(Thread);
if Thread=0 then ShowMessage('OK');
end;
на каждый новый цикл берется новая прокся, при рез=0 аккаунт записывается в конец списка для повторной проверки
Последний раз редактировалось Steam~; 07.08.2012 в 13:19.
|
|
|
09.08.2012, 20:16
|
#2
|
|
|
|
Сержант
|
Регистрация: 09.08.2010
Сообщений: 143
Популярность: 4928
Сказал(а) спасибо: 382
Поблагодарили 254 раз(а) в 175 сообщениях
|
Re: прокси в многопоточной программе
что прям совсем никто не знает в чем трабл?
|
|
|
09.08.2012, 21:33
|
#3
|
|
|
|
Рыцарь
|
Регистрация: 12.04.2009
Сообщений: 394
Популярность: 47903
Сказал(а) спасибо: 515
Поблагодарили 1,124 раз(а) в 430 сообщениях
|
Re: прокси в многопоточной программе
Подозреваю, что проблема в прямом использовании переменных главного потока в дочерним потоке.
________________
В любом из нас спит гений. И с каждым днем все крепче.
Запомните раз и навсегда:= 'Помочь' <> 'Сделайте за меня';
|
|
|
09.08.2012, 22:59
|
#4
|
|
|
|
Лейтенант-командор
|
Регистрация: 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.
|
|
|
09.08.2012, 23:57
|
#5
|
|
|
|
Сержант
|
Регистрация: 09.08.2010
Сообщений: 143
Популярность: 4928
Сказал(а) спасибо: 382
Поблагодарили 254 раз(а) в 175 сообщениях
|
Re: прокси в многопоточной программе
|
|
|
10.08.2012, 19:40
|
#6
|
|
|
|
Фельдмаршал
|
Регистрация: 13.08.2009
Сообщений: 1,004
Популярность: 25098
Золото Zhyk.Ru: 350
Сказал(а) спасибо: 110
Поблагодарили 830 раз(а) в 395 сообщениях
|
Re: прокси в многопоточной программе
Я вообще не вижу здесь половины кода. Критических секций не вижу. Записи в файл не вижу. Это "Application.ProcessMessages;" меня страшно настораживает.
________________
Ни одно доброе дело не остается безнаказанным.
Программы:
PW: Флудобот, Девизхак, OutFocusBot, OutFocusBot ver 3 (freepvp), PWMultiHack ver 3, AutoRespawn.
JD: JDMultiHack, JDFlooder, JDBot.
Статьи: Отключаем UAC, Ищем базовый адрес Perfect World, "Патчер памяти" или "Пишем флайхак", "Патчер памяти 2" или "Пишем Джампхак", "Поиск инжектов" или "Наш код в чужом процессе"
|
|
|
11.08.2012, 15:33
|
#7
|
|
|
|
Разведчик
|
Регистрация: 26.06.2012
Сообщений: 10
Популярность: 46
Сказал(а) спасибо: 1
Поблагодарили 8 раз(а) в 7 сообщениях
|
Re: прокси в многопоточной программе
|
Цитата: |
|
|
|
|
|
|
|
|
|
Это "Application.ProcessMessages;" меня страшно настораживает.
|
|
|
|
|
|
-Реакция на дальнейшую строку, а потом выполнение.
Пример:
Код:
запускаем таймер, что-то делаем, потом бац, процесс сообщение, далее можно и слип впихнуть (за счет процесс сообщения мы поспим), а потом что-то делаем.
Дин, чет я тебя не узнаю.
а по списку -
Код:
while not eof(список) do
begin
...
end;
валидность - убери проверку на обратное, если при удачном входе у нас выскочило "то-то", тогда мы "это" добавляем в другой список\массив, что угодно.
Как выглядит:
1)Берем себе прокси
2)Берем логин
3)Берем пароль
4)Проверяем логин\пасс
5)Да - пишем куда-то.
|
|
|
11.08.2012, 17:32
|
#8
|
|
|
|
Фельдмаршал
|
Регистрация: 13.08.2009
Сообщений: 1,004
Популярность: 25098
Золото Zhyk.Ru: 350
Сказал(а) спасибо: 110
Поблагодарили 830 раз(а) в 395 сообщениях
|
Re: прокси в многопоточной программе
________________
Ни одно доброе дело не остается безнаказанным.
Программы:
PW: Флудобот, Девизхак, OutFocusBot, OutFocusBot ver 3 (freepvp), PWMultiHack ver 3, AutoRespawn.
JD: JDMultiHack, JDFlooder, JDBot.
Статьи: Отключаем UAC, Ищем базовый адрес Perfect World, "Патчер памяти" или "Пишем флайхак", "Патчер памяти 2" или "Пишем Джампхак", "Поиск инжектов" или "Наш код в чужом процессе"
|
|
|
12.08.2012, 15:38
|
#9
|
|
|
|
Разведчик
|
Регистрация: 26.06.2012
Сообщений: 10
Популярность: 46
Сказал(а) спасибо: 1
Поблагодарили 8 раз(а) в 7 сообщениях
|
Re: прокси в многопоточной программе
|
|
|
13.08.2012, 13:53
|
#10
|
|
|
|
Лейтенант-командор
|
Регистрация: 12.08.2010
Сообщений: 727
Популярность: 30569
Золото Zhyk.Ru: 1
Сказал(а) спасибо: 57
Поблагодарили 645 раз(а) в 386 сообщениях
|
Re: прокси в многопоточной программе
iNugno, ты говоришь бред. ProcessMessages нужно вызывать, если цикл работает в основном потоке, чтобы вернуть приложению контроль. Нафига его в потоке вызывать? Где логика?
________________
Принимаются пожертвования любых размеров в фонд поддержки начинающих программистов
Кошельки: 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.
|
|
|
13.08.2012, 14:38
|
#11
|
|
|
|
Разведчик
|
Регистрация: 26.06.2012
Сообщений: 10
Популярность: 46
Сказал(а) спасибо: 1
Поблагодарили 8 раз(а) в 7 сообщениях
|
Re: прокси в многопоточной программе
|
Цитата: |
|
|
|
|
|
|
|
|
|
Нафига его в потоке вызывать? Где логика?
|
|
|
|
|
|
Т.к. я не вызывал сей месседж, поэтому не скажу. (Я его использовал в таймере, пример выше)
А то, что я говорю бред - читаем справку, понимаем, что все, что я написал выше - полнейшая правда. Дин не знает, что такое ProcessMessages, я ему показал. А теперь, как оказалось, я остаюсь незнайкой. Соглашусь, что немного не верно "-Реакция на дальнейшую строку, а потом выполнение" - но суть так же.
|
|
|
13.08.2012, 21:20
|
#12
|
|
|
|
Лейтенант-командор
|
Регистрация: 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.
|
|
|
13.08.2012, 21:24
|
#13
|
|
|
|
Фельдмаршал
|
Регистрация: 13.08.2009
Сообщений: 1,004
Популярность: 25098
Золото Zhyk.Ru: 350
Сказал(а) спасибо: 110
Поблагодарили 830 раз(а) в 395 сообщениях
|
Re: прокси в многопоточной программе
|
Цитата: |
|
|
|
|
|
|
|
|
|
Т.к. я не вызывал сей месседж, поэтому не скажу. (Я его использовал в таймере, пример выше)
А то, что я говорю бред - читаем справку, понимаем, что все, что я написал выше - полнейшая правда. Дин не знает, что такое ProcessMessages, я ему показал. А теперь, как оказалось, я остаюсь незнайкой. Соглашусь, что немного не верно "-Реакция на дальнейшую строку, а потом выполнение" - но суть так же.
|
|
|
|
|
|
Ты читаешь справку но не понимаешь о чем пишешь. То что ты написал "полнейшая правда" лишь в случае объявления application.processmessage в основном потоке приложения (в потоке, в котором обрабатываются все события формы). Дин прекрасно знает что это такое, и указал тебе на это еще несколькими постами выше, не нужно пытаться выставить меня неучем.
Еще раз для тех кто в нижней части танка Application.ProcessMessage имеет смысл вызывать лишь из основного потока приложения, так как долговременные рассчеты в циклах (в таймере он тоже абсолютно не нужен) могут подвесить форму приложения, что помешает пользователю работать с ней).
Вызов этой команды из другого потока не имеет смысла, поскольку он обрабатывается отдельно от формы.
________________
Ни одно доброе дело не остается безнаказанным.
Программы:
PW: Флудобот, Девизхак, OutFocusBot, OutFocusBot ver 3 (freepvp), PWMultiHack ver 3, AutoRespawn.
JD: JDMultiHack, JDFlooder, JDBot.
Статьи: Отключаем UAC, Ищем базовый адрес Perfect World, "Патчер памяти" или "Пишем флайхак", "Патчер памяти 2" или "Пишем Джампхак", "Поиск инжектов" или "Наш код в чужом процессе"
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Заявление об ответственности / Список мошенников
Часовой пояс GMT +4, время: 13:51.
|
|