Russian Qt Forum

Qt => Работа с сетью => Тема начата: qlewer от Май 11, 2020, 17:57



Название: зависание при обращении к сайту
Отправлено: qlewer от Май 11, 2020, 17:57
есть проект обращения к сайту и получения ответа. всё работает идеально на всех компах(qt 5.6.1)
перенес этот проект на виртуальную машину с qt 5.9.9
после строки
Код:
manager->get(request); 
программа виснет на 10 секунд, "не отвечает", окно не двигается. и в среде, и экзешником на всех компах. потом отмирает и работает, как ни в чем ни бывало, моментально обрабатывает все последующие запросы. openssl ставил, не помогло. подскажите, плз, в чем дело?


Название: Re: зависание при обращении к сайту
Отправлено: tux от Май 11, 2020, 18:52
Ну, так может быть, это самый request сложный? Мало данных.


Название: Re: зависание при обращении к сайту
Отправлено: qlewer от Май 11, 2020, 19:43
самый простецкий запрос с QNetworkAccessManager. при чем проект 100% рабочий. но именно на qt 4.12.0 5.9.9 mingw 53_32 тормозит 10 секунд


Название: Re: зависание при обращении к сайту
Отправлено: tux от Май 12, 2020, 00:47
Предлагаете гадать? У телепатов ведь сейчас каникулы.
Если жалко показать код, то можно набросать тестовый проект с проблемой, иначе всё бесполезно.


Название: Re: зависание при обращении к сайту
Отправлено: kambala от Май 12, 2020, 11:12
можно взять версию Qt посвежее


Название: Re: зависание при обращении к сайту
Отправлено: qlewer от Май 13, 2020, 11:55
Цитировать
Если жалко показать код, то можно набросать тестовый проект с проблемой, иначе всё бесполезно.
вот проект, собранный на qt 5.9.9. после нажатия на кнопку, всё окно намертво застывает на 10 секунд. если запустить ехе, в этом можно убедиться. этот же проект, собранный в qt 5.6.1, работает правильно. на другую версию qt перейти не могу, т.к. 3 дня не спал, с трудом настроил qt 5.9.9 на статическую сборку (во вложении обычная)


Название: Re: зависание при обращении к сайту
Отправлено: tux от Май 13, 2020, 16:21
Ничего криминального не увидел, кроме того, что вы сетевой запрос (который в принципе не мгновенен) запускаете в основном потоке. Пока сервер всю страницу не отдаст у вас и будет всё "висеть". Особенно, если сайт "современный" и в нём 100500 скриптов.
Обычно такое делают в отдельном потоке. Вы даже начали писать QThread...


Название: Re: зависание при обращении к сайту
Отправлено: qlewer от Май 13, 2020, 20:03
exe файл не запускали? он есть в архиве, собран по этому проекту. получение ответа с сервера несоизмеримо с тем зависанием, которое происходит, дело в другом. на qt 5.6.1 всё работает идеально, на 5.9.9 одна и та же задержка длиной примерно в 10 секунд


Название: Re: зависание при обращении к сайту
Отправлено: tux от Май 14, 2020, 12:19
Винды у меня нет в принципе, а в вайне вряд ли запустится.
Да и какой смысл в этом? Ну, заработает на этом сайте, будет "тормозить" на другом. Поток сделать не сложно, пример есть прямо в "помощи".


Название: Re: зависание при обращении к сайту
Отправлено: qlewer от Май 14, 2020, 18:47
у тебя не заработает. дело не в сайте. нет нужды в отдельном потоке, данные с сайта принимаются за милисекунды, а запрос\ответ осуществляются в режима сигнал\слот, что не вызывает зависаний. повторюсь, проект рабочий, но именно на qt 5.9.9 он собирается неправильно. очевидно, есть какая-то мелочь, которая не учтена, но я не знаю, какая


Название: Re: зависание при обращении к сайту
Отправлено: tux от Май 14, 2020, 19:58
Ну, вера - она штука крепкая.
А так ли уж нужен именно этот Qt? Я смотрел на 5.15.0 и ничего, кроме того, что написал, не увидел.


Название: Re: зависание при обращении к сайту
Отправлено: qlewer от Май 14, 2020, 22:15
мне нужна статическая сборка, чтобы не вызывали раздражение море всяких библиотек. с трудом собрал на 5.9.9, оставлял комп включенным на ночь. не факт, что получится с другой версией


Название: Re: зависание при обращении к сайту
Отправлено: tux от Май 14, 2020, 23:55
Насколько я знаю, статическая сборка может вызвать раздражение совсем других товарищей. Лично я в ней великого смысла не вижу, но тут уж: каждому своё.
А чем библиотеки то раздражают, если не секрет? Свернуть всё в единый инсталлятор и отдать именно его - это ведь не сложно. Да и сами библиотеки ведь не обязаны быть в системных каталогах, можно положить рядом с исполняемым файлом.


Название: Re: зависание при обращении к сайту
Отправлено: kambala от Май 15, 2020, 11:03
с трудом собрал на 5.9.9, оставлял комп включенным на ночь. не факт, что получится с другой версией
они все собираются идентично. а если исключить кучу ненужных модулей из сборки, то можно собрать за час-другой, если не быстрее.


Название: Re: зависание при обращении к сайту
Отправлено: qlewer от Май 15, 2020, 19:37
не нашёл ни одной нормальной адекватной инструкции, чтобы, повторяя все действия, можно было создать статическую сборку qt. словно каждый, кто постигает эту тайну, теряет способность ясно излагать свои мысли. при чём для меня не важна версия qt. хоть что-нибудь. слышал, что можно просто передать папку qtсо статической сборкой, но не нашёл ни одного такого архива


Название: Re: зависание при обращении к сайту
Отправлено: Пантер от Май 15, 2020, 19:49
не нашёл ни одной нормальной адекватной инструкции, чтобы, повторяя все действия, можно было создать статическую сборку qt. словно каждый, кто постигает эту тайну, теряет способность ясно излагать свои мысли. при чём для меня не важна версия qt. хоть что-нибудь. слышал, что можно просто передать папку qtсо статической сборкой, но не нашёл ни одного такого архива
Используй vcpkg или conan, через них можно собрать Кьют хоть статически, хоть динамически.


Название: Re: зависание при обращении к сайту
Отправлено: tux от Май 16, 2020, 02:51
А чем тут пакетный менеджер то может помочь?


Название: Re: зависание при обращении к сайту
Отправлено: Пантер от Май 16, 2020, 07:28
А чем тут пакетный менеджер то может помочь?
Он сам соберет статически Кьют.


Название: Re: зависание при обращении к сайту
Отправлено: tux от Май 16, 2020, 11:01
Так там и так всё собирается нормально. Вопрос только в необходимости этого.


Название: Re: зависание при обращении к сайту
Отправлено: Пантер от Май 16, 2020, 14:29
Так там и так всё собирается нормально. Вопрос только в необходимости этого.
Ты уверен? Я отвечал вот на этот комментарий, перечитай его еще раз
Цитировать
не нашёл ни одной нормальной адекватной инструкции, чтобы, повторяя все действия, можно было создать статическую сборку qt. словно каждый, кто постигает эту тайну, теряет способность ясно излагать свои мысли. при чём для меня не важна версия qt. хоть что-нибудь. слышал, что можно просто передать папку qtсо статической сборкой, но не нашёл ни одного такого архива


Название: Re: зависание при обращении к сайту
Отправлено: tux от Май 17, 2020, 11:17
Уверен. Абсолютно.
Полная и абсолютно точная инструкция по статичной сборки Qt находится в документации к Qt. Если программист её не понимает, то он просто занимается не тем.
И я точно так-же абсолютно уверен в бессмысленности этой затеи. Для клиета абсолютно всё равно - один файл в программе или 100500. Он всё равно её будет запускать кликом по ярлыку на рабочем столе. Хоть в шиндошс, хоть в никсах. А вот поиметь юридических проблем можно вагон и маленькую тележку. Понятно, что не в СНГ.
Но это моё мнение, спорить точно не буду.


Название: Re: зависание при обращении к сайту
Отправлено: Igors от Май 17, 2020, 11:34
не нашёл ни одной нормальной адекватной инструкции, чтобы, повторяя все действия, можно было создать статическую сборку qt. словно каждый, кто постигает эту тайну, теряет способность ясно излагать свои мысли. при чём для меня не важна версия qt. хоть что-нибудь. слышал, что можно просто передать папку qtсо статической сборкой, но не нашёл ни одного такого архива
Когда-то делал, никаких трудностей не испытал, ну дал нужный ключ, и "собралось". Только какое это отношение имеет к Вашей проблеме?


Название: Re: зависание при обращении к сайту
Отправлено: Пантер от Май 17, 2020, 12:49
Уверен. Абсолютно.
Полная и абсолютно точная инструкция по статичной сборки Qt находится в документации к Qt. Если программист её не понимает, то он просто занимается не тем.
И я точно так-же абсолютно уверен в бессмысленности этой затеи. Для клиета абсолютно всё равно - один файл в программе или 100500. Он всё равно её будет запускать кликом по ярлыку на рабочем столе. Хоть в шиндошс, хоть в никсах. А вот поиметь юридических проблем можно вагон и маленькую тележку. Понятно, что не в СНГ.
Но это моё мнение, спорить точно не буду.
А мне вот сейчас приходится соирать Кьют статически, чтобы юзать новенький компиль и c++17, а деплоиться на CentOS7. Мне не только кьют, мне даже glibc приходится статически собирать, чтобы ни одной зависимости не было. Так что, бывают таки случаи, когда статика нужна. А юридические проблемы ты поимеешь если продавать будешь свое ПО и собирать его статически.


Название: Re: зависание при обращении к сайту
Отправлено: DarkHobbit от Июнь 22, 2020, 11:26
не нашёл ни одной нормальной адекватной инструкции, чтобы, повторяя все действия, можно было создать статическую сборку qt.
Может, мои подойдут? :)
Для Qt 4 (http://zvyozdochkin.ru/articles/qt-win-static-build.php)
Для Qt 5 (http://zvyozdochkin.ru/articles/qt-win-static-build-qt5.php)
Только повторять действия надо не бездумно, а с учётом своей системы и своих потребностей. У меня тоже не исчерпывающая инструкция на все случаи жизни, а пример, как можно сделать. Ну и версии самих кутей и компилятора теперь уже немного устаревшие, но принцип можно понять...