|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
08.07.2017, 17:51 | #1 |
мальчик-помогай =)
Форумчанин
Регистрация: 16.09.2010
Сообщений: 522
|
Indy, Synapse или что-то другое?
Доброе время суток!
Есть среднего размера проект, что-то типа граббера ВК, и в нём используется сейчас Indy. Настроено практически всё что можно (таймауты, в частности), но иногда запрос намертво виснет на неопределённое время (счёт на часы идёт). Гуглил я эту проблему не один десяток раз (2 месяца веду проект и проблема периодически "всплывала" в списке задач, но потом откладывалась или же считалась решённой) и там пишут, мол, это проблема winsocks.dll. Решений тут два: 1) переходить с Indy на тот же Synapse и т. п... тут мне интересен опыт форумчан, стоит ли оно того, поддерживает ли ssl и т.д. 2) создавать свой поток, который и будет отслеживать и "прибивать" зависшие соединения.... очень не охота так делать т. к. совсем не факт, что можно нормально прервать работу winsocks и что оно не породит ещё кучу багов... опять же, интересен опыт форумчан. P. s. в этот раз проблема, судя по всему, связана с прокси, он перестаёт отвечать, но это не отменяет проблему с нерабочими таймаутами... stacktrace рабочего потока почему-то содержит только: Код:
|
08.07.2017, 17:57 | #2 |
Форумчанин
Регистрация: 16.12.2009
Сообщений: 902
|
Если вы работаете по HTTP то попробуйте использовать WinInit работает без индейских компонентов. Я тоже в них замечал иногда проблему связанную с winsocks.dll
Последний раз редактировалось Aliens_wolfs; 08.07.2017 в 18:03. |
08.07.2017, 18:11 | #3 |
мальчик-помогай =)
Форумчанин
Регистрация: 16.09.2010
Сообщений: 522
|
Aliens_wolfs, а как там дела с httpS? на msdn пишут якобы там только два флага меняются, но чую они лукавят + мне бы ещё и прокси поддерживать.... боюсь угробить кучу времени на написание своей обёртки над WinInet
|
08.07.2017, 19:01 | #4 |
Форумчанин
Регистрация: 16.12.2009
Сообщений: 902
|
Вот код в WinInet
Код:
Последний раз редактировалось Aliens_wolfs; 08.07.2017 в 19:15. |
08.07.2017, 19:02 | #5 |
Лис
Старожил
Регистрация: 18.09.2015
Сообщений: 2,409
|
Эта проблема антивируса. Сносишь антивирус и зависания пропадают.
А смысл? Да поддерживает. Проблема в том что Synapse это тот же Indy 10 летней давности. Небольшая обёртка над сокетами, без нормально поддержки параллельности и асинхронности. По сути придётся кучу кода дописать самому чтобы привести в чувство.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал . |
08.07.2017, 19:05 | #6 | |
мальчик-помогай =)
Форумчанин
Регистрация: 16.09.2010
Сообщений: 522
|
Снесён, особенно под ВМ.... ещё идеи?
Цитата:
Последний раз редактировалось GreenWizard; 08.07.2017 в 19:10. |
|
08.07.2017, 19:07 | #7 | |
Форумчанин
Регистрация: 16.12.2009
Сообщений: 902
|
Цитата:
Попробуй код что я написал в посте #4. Последний раз редактировалось Aliens_wolfs; 08.07.2017 в 19:22. |
|
08.07.2017, 19:42 | #8 |
Лис
Старожил
Регистрация: 18.09.2015
Сообщений: 2,409
|
Плоха линия связи. При пропадание пакета. TCP связь может перестать отвечать. Пакеты уходят, отправляющая сторона думает, что соединение живое, а принимающее что мёртвое и отфутболивший сообщения. В TCP на этот счёт ничего не предусмотрено.
В принципе Indy это нормально отрабатывает, и такие ошибки ловятся по тайм-ауту. Проблемы начинаются при работе с прокси, тайм ауты не работают. В отсюда можно сделать вывод, что это проблемы в Indy. Проблемы произошли в сегменте прокси - конечный сервер, а Indy. Честно я думал они уж это поправили за столько лет. Видимо ещё нет ;( Какая у вас версия Delphi и indy?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал . |
08.07.2017, 19:54 | #9 |
мальчик-помогай =)
Форумчанин
Регистрация: 16.09.2010
Сообщений: 522
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
У меня не работает: Ubuntu->(Indy или Synapse)->SMTP. А у Вас? | BOEHKOM | Lazarus, Free Pascal, CodeTyphon | 25 | 17.08.2015 23:45 |
Indy или Synapse. кусками забрать файл. КАК? | Человек_Борща | Работа с сетью в Delphi | 2 | 07.04.2012 12:13 |
Ошибка в коде или что-то другое? | Яр|/||< (^_^) | PHP | 17 | 17.06.2010 18:10 |
preg_replace ?? или что то другое... | micron | PHP | 14 | 18.02.2010 15:10 |
Перегрев или что то другое? | AbRaKaTaBrA | Компьютерное железо | 11 | 09.02.2010 14:45 |