![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Ошибка Socket error 10053
Дмитрий © (2012-03-20 06:59:00)Добрый день. Использую компонент IndyHttpProxyServer.
Когда через прокси проходят одновременно много данных вылезает ошибка.
socket error 10053 software caused connection abort
Подскажите как убрать данную проблему?
Дмитрий (2012-03-23 19:49:00) [1]Все нашел. Событие OnBeforeCommandHandler
if(Pos('google.com',AData)=0) then
Abort;
Дмитрий (2012-03-23 19:02:00) [2]Ясно. Жаль точного ответа так и не получил. Подскажите тогда как обрубать другие коннекты в IdHttpProxyServer кроме нужного адреса. К примеру мне надо чтобы через прокси проходили запросы только на google.ru, а остальные обрубались. Так понимаю делается это в событии OnConnect. Нашел что можно отключить ненужных клиентов вот так там, но не могу найти где отловить адреса на стадии подключения.
if (Trim(AContext.Binding.PeerIP)<>'127.0.0.1') then abort;
Anatoly Podgoretsky (2012-03-22 07:43:00) [3]> Дмитрий (21.03.2012 23:55:16) [16]
Писанина, но она дает понимание работы с синхронными сокетами. У авторов
была другая цель, чем учить неучей.
Дмитрий (2012-03-21 23:55:00) [4]В этой книге одна писанина. Ничего толкового в ней нету. Нашел что вы советовали. Там тоже самое что вы написали ) Ни капли примера даже.
sniknik (2012-03-21 22:43:00) [5]http://www.podgoretsky.com/
Indy in Depth Глубины Indy
название там - "Планировщик волокон"
Дмитрий (2012-03-21 22:36:00) [6]В свойстве Scheduler пусто. Гугл ответа о том что там можно это сделать никакого не дал :(
sniknik (2012-03-21 19:33:00) [7]его и не нужно, он "сам" должен, обработчик... третий рар повторяю, больше не буду, смотри шедулер... свойство или еще чего там, не хочу лезть за тебя искать. в http сервере, знаю есть, значит и в прокси должен... (работают то "парно").
Дмитрий (2012-03-21 17:25:00) [8]Запись в файл поточно сделал. Не очень представляю как IdHttpProxyServer через потоки пустить.
sniknik (2012-03-21 08:01:00) [9]> Но 100% выпадение происходит когда в гугл вбиваю что-то в поиск
тут задержки мизерные... нет больших файлов. просто там аякс, запрос изнутри страницы который вызывает (смотря как настроено) перегрузку компонент страницы... т.е. страничка гугла сама параллельно несколько запросов посылает/обрабатывает.
что в общемто означает, если хочешь чтобы гугл (и аналогично сделанные) работал через твой прокси, параллельной записи в файл мало, нужно процесс "проксирования" много поточным делать. еще раз, посмотри про шедулер...
Дмитрий (2012-03-20 23:53:00) [10]Подскажите как запись и обработку данных переместить в другой поток.
Дмитрий (2012-03-20 23:52:00) [11]http://img831.imageshack.us/img831/3388/27378328.jpg
Вот скрин ошибки.
Антивируса никакого нету на компе. Причем выпадение может быть а может и не быть. Но 100% выпадение происходит когда в гугл вбиваю что-то в поиск).
Так что походу все таки как то надо запись и обработку полученных данных от сервера помещать в поток чтобы не затормаживать работу прокси.
sniknik (2012-03-20 13:57:00) [12]> Не работал никогда с потоками )
с инди даже не особо и нужно (хотя очень желательно все же уметь)... там можно подключить "шедулер". обычно. но, не работал никогда с IndyHttpProxyServer.
> А антивирус случайно не Нортон?
с ним конечно чудеса и не такие бывают(больше только у касперского)... но, тут прокси его личный "велосипед", и поменять на другой он отказался ([2]). и если сравнивать "велосипед" с нортоном...
Anatoly Podgoretsky (2012-03-20 10:37:00) [13]И неужели это все, что пишет "socket error 10053 software caused connection abort"
Anatoly Podgoretsky (2012-03-20 10:35:00) [14]> Дмитрий (20.03.2012 09:54:03) [3]
А антивирус случайно не Нортон?
Дмитрий (2012-03-20 10:14:00) [15]Можно пожалуйста поподробнее? Не работал никогда с потоками ) Особенно с записью в файл.
sniknik (2012-03-20 09:57:00) [16]сделать много поточным. /писать в файл в дополнительном
Дмитрий (2012-03-20 09:54:00) [17]Подозреваю что эта ошибка вызывается из-за того что во время получения данных от сервера они обрабатываются в реальном времени и часть информации пришедшая с сервера записывается в файл. Наверно из-за чего первый запрос не успевает обработаться а в нее уже стучит второй и происходит обрыв связи.
Подскажите как быть?
Дмитрий (2012-03-20 09:50:00) [18]Не это не дело) Как поменять прокси? :) Вы мне что предлагаете переделать всю программу на другой компонент что ли? :)
sniknik (2012-03-20 07:56:00) [19]> как убрать данную проблему?
поменяй прокси