![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#11 |
Старожил
Регистрация: 13.12.2006
Сообщений: 3,859
|
![]()
Перечитал еще раз ваш вопрос, не так вас понял. В вашем случае прежде всего советовал бы проверить конфликты ресурсов между потоками
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи |
![]() |
![]() |
![]() |
#12 |
Форумчанин
Регистрация: 03.01.2009
Сообщений: 116
|
![]()
У каждого потока создается свой клиент и хэндлер, все обращения к объектам основного потока (для отображения статуса, записи в лог и т.д.) по Synchronize. Было бы странно, если бы конфликт ресурсов проявлялся в разном результате работы одного метода при разном списке параметров.
|
![]() |
![]() |
![]() |
#13 |
Форумчанин
Регистрация: 03.01.2009
Сообщений: 116
|
![]()
Квэнди, теперь я Вас перечитал и, похоже, понял, что прежде тоже не совсем так Вас понял. Вы про зависание говорили? Правда, тогда ответ мой в основной части все равно остается прежним
![]() А насчет особенностей вызова вроде понял по исходникам Indy, где может возникать некорректность (если в ReadStream возникает FInputBuffer.Size>=LWorkCount). Но докопаться время будет, видимо, не сегодня уже. |
![]() |
![]() |
![]() |
#14 |
Старожил
Регистрация: 13.12.2006
Сообщений: 3,859
|
![]()
конфликт ресурсов между потоками может проявится когда угодно и ге угодно, так уж сложилось. Но в вашем случае только подробный дебаг скорей всего даст правильный ответ.
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи |
![]() |
![]() |
![]() |
#15 |
Форумчанин
Регистрация: 03.01.2009
Сообщений: 116
|
![]()
Да зависание клиента есть даже тогда, когда только один поток клиента обращается к серверу. При тестировании даже на локалхосте между двумя нижеследующими выводами в лог проходит 30 секунд. То есть висит ровно на вызове Connect.
FLogStr:='Соединяемся с хостом '+ConnSettings.AdressS+' по порту '+IntToStr(ConnSettings.PortS)+' в потоке '+FName; Synchronize(PutLog); fIdTcpClient.ConnectTimeout:=ConnSe ttings.Timeout; fIdTcpClient.ReadTimeout:=ConnSetti ngs.Timeout; FIdTCPClient.Socket.ReadTimeout:=Co nnSettings.Timeout; FIdTCPClient.Socket.ConnectTimeout: =ConnSettings.Timeout; fIdTcpClient.Connect; FLogStr:='Соединение успешно для потока '+FName; Synchronize(PutLog); Может ли дело быть в IdSSLIOHandlerSocketOpenSSL или, скажем, его неверных настройках? |
![]() |
![]() |
![]() |
#16 |
Старожил
Регистрация: 13.12.2006
Сообщений: 3,859
|
![]()
да может и в ssl я предпочитаю не связываться с ssl в Indy.
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи |
![]() |
![]() |
![]() |
#17 |
Форумчанин
Регистрация: 03.01.2009
Сообщений: 116
|
![]()
Дык проксей для клиента все же хочется. Попробовал вот TIdIOHandlerStack вместо TIdSSLIOHandlerSocketOpenSSL (ну и соответственно на сервере) - так вообще все работать перестало.
|
![]() |
![]() |
![]() |
#18 |
Старожил
Регистрация: 13.12.2006
Сообщений: 3,859
|
![]()
просто использование open ssl все- таки зависимо как версий соответствующих бибилиотек у клиентов. Можете попробовать вместо Indy использовать ICS
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи |
![]() |
![]() |
![]() |
#19 |
Форумчанин
Регистрация: 03.01.2009
Сообщений: 116
|
![]()
А как там с прокси для TCP? Пробовали его в одном проекте использовать, но там требовалось нормальное управление http-header, а с ICS это что-то не получилось.
|
![]() |
![]() |
![]() |
#20 |
Старожил
Регистрация: 13.12.2006
Сообщений: 3,859
|
![]()
Использовал ICS пару раз не более, так что для подобного необходимо в доках смотреть. Впечатление от ICS осталось таким: более проработанные, но менее дружественные компоненты.
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
IdTCPClient, прием сообщений. | gusluk | Работа с сетью в Delphi | 1 | 26.12.2008 09:48 |
IdTcpClient и idTcpServer | xTANATOSx | Работа с сетью в Delphi | 9 | 17.05.2008 23:11 |
Реакция IdTCPClient | OrdJONY | Работа с сетью в Delphi | 3 | 30.08.2007 10:16 |
передача данных через idtcpclient | BioS | Работа с сетью в Delphi | 0 | 20.02.2007 11:04 |