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