Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.11.2012, 12:44   #1
bakanaev
Форумчанин
 
Регистрация: 27.03.2012
Сообщений: 438
По умолчанию Если возникает ошибка Error # 10054 у одногои proxy, то у все остальных тоже

Собственно делаю GET'ы в цыкле через прокси. Если у одного из прокси вылетает Socket Error # 10054 Connection reset by peer, то у всех остальных сразуже такая ошибка, т.е и
Код:
IdHTTP1.ReadTimeout:=10000;
        IdHTTP1.ConnectTimeout:=10000;
не учитывается, просто вылитела ошибка у одного, все, сразу же (без timeout) у остальных
Код:
  while ( j <  socks4_proxy.Count ) do
      begin
                       
 

        IdHTTP1.AllowCookies:=true;
        IdHTTP1.HandleRedirects:=true;
        IdHTTP1.CookieManager:=IdCookieManager1;
        IdHTTP1.IOHandler:=IdSSLIOHandlerSocketOpenSSL1;
        IdSSLIOHandlerSocketOpenSSL1.TransparentProxy:=IdSocksInfo1;
        IdSocksInfo1.Authentication:= saNoAuthentication;
        IdSocksInfo1.Version:=svSocks4;
        IdSocksInfo1.Host:=Trim ( Copy( socks4_proxy.Strings[j],1,Pos(':',socks4_proxy.Strings[j])-1) );
        IdSocksInfo1.Port:= StrToInt  ( Trim( Copy(socks4_proxy.Strings[j],Pos(':',socks4_proxy.Strings[j])+1,Length(socks4_proxy.Strings[j]))));
        IdHTTP1.ReadTimeout:=StrToInt(Form1.Edit4.Text)*1000;
        IdHTTP1.ConnectTimeout:=StrToInt(Form1.Edit4.Text)*1000;
	try
		 IdHTTP1.GET (URL);
		 
		
	 except
       on E: Exception do
            begin
              SaveToFile('['+TimeToStr(System.SysUtils.Time)+'] '+'Ошибка  '+E.Message+', у прокси '+socks4_proxy.Strings[j],'errors_log.txt');
            end;
         end;
	 
	  inc(j);
	 end;
Список прокси
Код:
1.85.17.82:1080
103.2.147.18:1080
110.139.15.63:1080
108.48.89.106:54377
119.235.50.162:1080
119.97.131.12:1080
119.97.131.23:1080
119.97.131.20:1080
119.97.131.11:1080
119.97.131.24:1080
130.193.121.162:1080
122.225.202.18:1080
118.99.65.246:1080
173.45.105.244:1080
139.84.239.98:2601
174.99.32.158:51595
173.240.202.74:1777
184.60.183.90:50975
180.254.87.35:1080
198.144.187.74:1080
202.109.133.181:1080
111.94.144.177:1080
206.72.204.154:1080
195.69.109.226:1080
222.188.10.1:1080
222.189.152.68:1080
202.138.248.132:1080
206.72.204.168:1080
221.234.24.46:1080
24.151.145.113:52399
46.49.13.71:1080
222.197.214.91:1080
221.238.12.243:1080
62.201.214.208:1080
67.175.74.80:24887
66.7.126.183:1080
221.214.208.226:1080
61.141.21.34:1080
67.197.86.191:1745
89.203.137.113:1080
89.249.59.232:1080
93.184.71.66:1080
76.117.152.191:37438
71.74.69.145:1507
97.88.167.46:17559
96.25.148.102:28605
96.233.157.84:1118
Работаю на Delphi XE3
bakanaev вне форума Ответить с цитированием
Старый 11.11.2012, 13:36   #2
bakanaev
Форумчанин
 
Регистрация: 27.03.2012
Сообщений: 438
По умолчанию

Что ни у кого такого не было?
bakanaev вне форума Ответить с цитированием
Старый 11.11.2012, 14:30   #3
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,442
По умолчанию

Данные не правильно формируете на сервер. И сервер разрывает с вами подключение, а т..к. работаете через 100500 прокси, и везде данные одни и те-же, то вымирание происходит в геометрической прогрессии.

P.S. у вас не все прокси SOCK4. Используйте Sock5, как основной, а к нему могут подключатся уже и sock4.
Человек_Борща вне форума Ответить с цитированием
Старый 11.11.2012, 15:19   #4
bakanaev
Форумчанин
 
Регистрация: 27.03.2012
Сообщений: 438
По умолчанию

Цитата:
Сообщение от Человек_Борща Посмотреть сообщение
Данные не правильно формируете на сервер. И сервер разрывает с вами подключение, а т..к. работаете через 100500 прокси, и везде данные одни и те-же, то вымирание происходит в геометрической прогрессии.

P.S. у вас не все прокси SOCK4. Используйте Sock5, как основной, а к нему могут подключатся уже и sock4.
А как быть с http прокси?

А как правельно формировать запросы на сервер? Ведь у меня некоторые проходят

блин, все равно если указывать IdSocksInfo1.Version:=svSocks5; то все валится. Как быть??

Последний раз редактировалось Stilet; 11.11.2012 в 16:09.
bakanaev вне форума Ответить с цитированием
Старый 11.11.2012, 15:57   #5
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,442
По умолчанию

Цитата:
А как быть с http прокси?
HTTPTunnel использовать. THTTPSend.Sock смотреть.
Цитата:
А как правельно формировать запросы на сервер? Ведь у меня некоторые проходят
А это уже ваша проблема. Берите сниффер и смотрите, что посылаете вы, а что посылает браузер.
Человек_Борща вне форума Ответить с цитированием
Старый 11.11.2012, 16:07   #6
bakanaev
Форумчанин
 
Регистрация: 27.03.2012
Сообщений: 438
По умолчанию

Цитата:
Сообщение от Человек_Борща Посмотреть сообщение

А это уже ваша проблема. Берите сниффер и смотрите, что посылаете вы, а что посылает браузер.
Не пойму, я же GET делаю, не POST
урл все время один и тот же.

Цитата:
Сообщение от Человек_Борща Посмотреть сообщение
HTTPTunnel использовать. THTTPSend.Sock смотреть.

А это уже ваша проблема. Берите сниффер и смотрите, что посылаете вы, а что посылает браузер.
Так это же не инди)
Вот так правельно ?
Код:

          IdHTTP1.ProxyParams.ProxyServer:=Trim ( Copy( socks4_proxy.Strings[j],1,Pos(':',socks4_proxy.Strings[j])-1) );
          IdHTTP1.ProxyParams.ProxyPort:= StrToInt  ( Trim( Copy(socks4_proxy.Strings[j],Pos(':',socks4_proxy.Strings[j])+1,Length(socks4_proxy.Strings[j]))));

        IdHTTP1.ReadTimeout:=StrToInt(Form1.Edit4.Text)*1000;
        IdHTTP1.ConnectTimeout:=StrToInt(Form1.Edit4.Text)*1000;
From Stilet: Пожалуйста не допускай подряд идущие твои посты, если есть возможность - правь свой последний, если он последний в теме.
To Stilet, хорошо

Последний раз редактировалось bakanaev; 11.11.2012 в 17:14.
bakanaev вне форума Ответить с цитированием
Старый 11.11.2012, 21:06   #7
bakanaev
Форумчанин
 
Регистрация: 27.03.2012
Сообщений: 438
По умолчанию

Блин, я вообще не чего понять не могу. Теперь перед каждым запросом создаю все динамически, один фиг все валится
Код:
while true do
 HTTP:= TIdHTTP.Create;
        CookieManager:=TIdCookieManager.Create;
        SSLIOHandlerSocketOpenSSL:=TIdSSLIOHandlerSocketOpenSSL.Create;
        SocksInfo:=TIdSocksInfo.Create;
        SSLIOHandlerSocketOpenSSL.TransparentProxy:=SocksInfo;
        HTTP.CookieManager:=CookieManager;
        HTTP.HandleRedirects:=true;
        HTTP.AllowCookies:=true;
        HTTP.IOHandler:=SSLIOHandlerSocketOpenSSL;
        SocksInfo.Version:=svSocks5;
        SocksInfo.Host:=Trim ( Copy( socks4_proxy.Strings[j],1,Pos(':',socks4_proxy.Strings[j])-1) );
        SocksInfo.Port:= StrToInt  ( Trim( Copy(socks4_proxy.Strings[j],Pos(':',socks4_proxy.Strings[j])+1,Length(socks4_proxy.Strings[j]))));
        SocksInfo.Authentication:= saNoAuthentication;
        HTTP.ReadTimeout:=StrToInt(Form1.Edit4.Text)*1000;
        HTTP.ConnectTimeout:=StrToInt(Form1.Edit4.Text)*1000;
HTTP.GET (URL)

       HTTP.Free;
        CookieManager.Free;
        SSLIOHandlerSocketOpenSSL.Free;
        SocksInfo.Free; 
 inc(i);
end;
Stilet, сорри
bakanaev вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
при отправки post получаю socket error 10054 Smagulov85 Работа с сетью в Delphi 3 19.09.2012 01:03
TCPClient/TCPServer, error 10054 iceastral Работа с сетью в Delphi 0 02.06.2010 18:00
Socket Error 10054 RIO Работа с сетью в Delphi 5 22.09.2009 16:24