Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
Многопоточность через прокси |

14.01.2010, 18:39
|
|
Участник форума
Регистрация: 02.07.2007
Сообщений: 189
Провел на форуме: 1843300
Репутация:
212
|
|
Многопоточность через прокси
Ребят объясните плиз принципы построения многопоточных приложений через прокси.
Дано. Многопоточная прога чекающая акки на валид.
Нужно сделать чтобы эта радость работала через список прокси.
Без прокси все классно работает.
если запускаешь поток с чеком акков через прокси, то если прокси невалиден то поток завершается и акк естественно не чекается и всё идет дальше.
Вопрос. Как все нормально организовать. Чекать прокси на валид перед чеком или как нибудь по другому ?
|
|
|

14.01.2010, 18:42
|
|
Участник форума
Регистрация: 27.08.2009
Сообщений: 131
Провел на форуме: 475164
Репутация:
33
|
|
Сообщение от Freedom
Ребят объясните плиз принципы построения многопоточных приложений через прокси.
Дано. Многопоточная прога чекающая акки на валид.
Нужно сделать чтобы эта радость работала через список прокси.
Без прокси все классно работает.
если запускаешь поток с чеком акков через прокси, то если прокси невалиден то поток завершается и акк естественно не чекается и всё идет дальше.
Вопрос. Как все нормально организовать. Чекать прокси на валид перед чеком или как нибудь по другому ?
чекать прокси на валид перед запуском программы
|
|
|

14.01.2010, 18:50
|
|
Участник форума
Регистрация: 02.07.2007
Сообщений: 189
Провел на форуме: 1843300
Репутация:
212
|
|
Сообщение от drim
чекать прокси на валид перед запуском программы
оригинальный подход ))))
киньте плиз тогда в личку валидных соксов )))
|
|
|

14.01.2010, 18:51
|
|
Участник форума
Регистрация: 29.08.2008
Сообщений: 151
Провел на форуме: 1551582
Репутация:
107
|
|
Сообщение от Freedom
если запускаешь поток с чеком акков через прокси, то если прокси невалиден то поток завершается и акк естественно не чекается и всё идет дальше.
используй try - except
|
|
|

14.01.2010, 18:54
|
|
Участник форума
Регистрация: 02.07.2007
Сообщений: 189
Провел на форуме: 1843300
Репутация:
212
|
|
Сообщение от ZdezBilYa
используй try - except
т.е.
try
http.post(запрос через прокси);
except
http.post(запрос без прокси);
end;
вот так ?
|
|
|

14.01.2010, 18:57
|
|
Участник форума
Регистрация: 29.08.2008
Сообщений: 151
Провел на форуме: 1551582
Репутация:
107
|
|
нет.
try
http.post(запрос через прокси);
except
end;
в except можно делать, что хочешь, например удалять эту проксю, раз через нее соединиться не удалось
|
|
|

14.01.2010, 18:58
|
|
Участник форума
Регистрация: 27.08.2009
Сообщений: 131
Провел на форуме: 475164
Репутация:
33
|
|
Сообщение от Freedom
оригинальный подход ))))
киньте плиз тогда в личку валидных соксов )))
они продаются
|
|
|

14.01.2010, 18:59
|
|
Участник форума
Регистрация: 02.07.2007
Сообщений: 189
Провел на форуме: 1843300
Репутация:
212
|
|
Сообщение от ZdezBilYa
нет.
try
http.post(запрос через прокси);
except
end;
в except можно делать, что хочешь, например удалять эту проксю, раз через нее соединиться не удалось
так получается что поток завершается и акк не чекается (
|
|
|

14.01.2010, 19:04
|
|
Участник форума
Регистрация: 29.08.2008
Сообщений: 151
Провел на форуме: 1551582
Репутация:
107
|
|
тогда вот так:
Код:
error:=true;
while error do
begin
error:=false;
try
http.post;
except
error:=true;
берем другую прокси;
end;
end;
будет повторяться пока запрос не пройдет без ошибок
|
|
|

14.01.2010, 20:06
|
|
Reservists Of Antichat - Level 6
Регистрация: 12.02.2006
Сообщений: 891
Провел на форуме: 1892597
Репутация:
836
|
|
завести объект вида
enum Check
{
Unchecked,
Valid,
Invalid,
ProxyError
}
Список/Массив вида
id - CheckValue
Проверка
while(currentAccount.CheckValue == Check.ProxyError || currentAccount.CheckValue == Unchecked)
try
{
тут могут быть варианты вида Valid и Invalid.
break;
}
catch(SocketException)
{
currentAccount.CheckValue = Check.ProxyError;
removeProxy();
}
}
...
Все просто. В цикле проверяем поле которое отвечает за информацию о валидности акка и его статусе проверки.
Если проверили акк, то выставляем соответствующий статус, иначе если ловим ошибку сокета, присваиваем статус говорящий что трабла с прокси.
P.S. забываю уже дельфи 
__________________
*********************************
*Я не волшебник ٩(๏̯͡๏)۶, только учусь...*
*********************************
Программы на заказ
Times to fly...
|
|
|
|
 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|