Russian Qt Forum
Ноябрь 23, 2024, 04:26
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Общие вопросы
>
программа зависает (Tcp network)
Страниц: [
1
]
2
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: программа зависает (Tcp network) (Прочитано 8850 раз)
Noize_programmer
Чайник
Offline
Сообщений: 91
работает не трогай
программа зависает (Tcp network)
«
:
Февраль 11, 2023, 13:30 »
решено решено решено решено решено решено решено решено решено решено решено решено
решено решено решено решено решено решено решено решено решено решено решено решено
решено решено решено решено решено решено решено решено решено решено решено решено
решено решено решено решено решено решено решено решено решено решено решено решено
git:
client:
https://github.com/SpeechKingV/Tcp_Client
server:
https://github.com/SpeechKingV/Tcp_server
client вывод сборки:
13:27:52: Выполняются этапы для проекта TCP_client...
13:27:52: Настройки не изменились, этап qmake пропускается.
13:27:52: Запускается: «F:\Qt5.14\Tools\mingw730_64\bin\mingw32-make.exe» -j6
F:/Qt5.14/Tools/mingw730_64/bin/mingw32-make -f Makefile.Debug
mingw32-make[1]: Entering directory 'F:/Qt_project/5.0.2/lesons/Book/TCP_client/build-TCP_client-Desktop_Qt_5_12_12_MinGW_64_bit-Debug'
mingw32-make[1]: Nothing to be done for 'first'.
mingw32-make[1]: Leaving directory 'F:/Qt_project/5.0.2/lesons/Book/TCP_client/build-TCP_client-Desktop_Qt_5_12_12_MinGW_64_bit-Debug'
13:27:54: Процесс «F:\Qt5.14\Tools\mingw730_64\bin\mingw32-make.exe» завершился успешно.
13:27:54: Прошло времени: 00:01.
server вывод сборки:
13:27:53: Запускается F:\Qt_project\5.0.2\lesons\Book\TCP_server\build-TCP_server-Desktop_Qt_5_12_12_MinGW_64_bit-Debug\debug\TCP_server.exe ...
13:28:43: F:\Qt_project\5.0.2\lesons\Book\TCP_server\build-TCP_server-Desktop_Qt_5_12_12_MinGW_64_bit-Debug\debug\TCP_server.exe завершился с кодом 0
«
Последнее редактирование: Февраль 16, 2023, 14:35 от Noize_programmer
»
Записан
Официальная стандартизация языка с++ началась в 1998 году, когда был опубликован стандарт языка ISO/IEC 14882:1998(известный как C++98), разработанный комитетом по стандартизации C++(ISO/IEC JTC1/SC22/WG21 working group)
kambala
Джедай : наставник для всех
Offline
Сообщений: 4747
Re: программа зависает (Tcp network)
«
Ответ #1 :
Февраль 11, 2023, 13:58 »
вот тут как раз нужен не вывод сборки, а вывод приложения (для сервера ты именно его выложил
). По выводу сервера видно, что он не зависает, а завершается без ошибок (код 0). Значит клиент зависает?
Записан
Изучением C++ вымощена дорога в Qt.
UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
kambala
Джедай : наставник для всех
Offline
Сообщений: 4747
Re: программа зависает (Tcp network)
«
Ответ #2 :
Февраль 11, 2023, 14:11 »
можно попробовать добавить socket->waitForBytesWritten(500) после socket->write(...) для синхронного ожидания отправки данных.
- файл с расширением user не надо класть в репозиторий, почитай про игнорирование файлов в гите (файл .gitignore)
- в клиенте метод SError() никогда не будет вызван, подумай почему (в выводе программы должна быть подсказка)
- на пробелах экономить не надо (вызовы connect)
- написание слова socket в двух вариациях (и обе ошибочны) — это нечто
прививай себе культуру написания кода, в будущем это поможет не только тебе, но и тем, кто будет читать твой код
Записан
Изучением C++ вымощена дорога в Qt.
UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
sergek
Гипер активный житель
Offline
Сообщений: 872
Мы должны приносить пользу людям.
Re: программа зависает (Tcp network)
«
Ответ #3 :
Февраль 11, 2023, 19:00 »
Можно попробовать убрать опцию -j6 и пересобрать проекты. У меня случалось, что при такой сборке программы сбоили, с тех пор я ее никогда не использую.
Записан
Qt 5.13.0 Qt Creator 5.0.1
Win10, Ubuntu 20.04
tux
Global Moderator
Бывалый
Offline
Сообщений: 404
Re: программа зависает (Tcp network)
«
Ответ #4 :
Февраль 11, 2023, 19:07 »
Эта опция имеет смысл, если вы собираете либо мегабольшой проект либо набор проектов. При сборке мира ещё имеет смысл (если вы джентушник, как я
)
При одиночном небольшом проекте лучше собирать в один поток.
Записан
Digital Art
kambala
Джедай : наставник для всех
Offline
Сообщений: 4747
Re: программа зависает (Tcp network)
«
Ответ #5 :
Февраль 11, 2023, 19:35 »
вот это поворот
ни разу еще не ловил проблем из-за этого
Записан
Изучением C++ вымощена дорога в Qt.
UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
sergek
Гипер активный житель
Offline
Сообщений: 872
Мы должны приносить пользу людям.
Re: программа зависает (Tcp network)
«
Ответ #6 :
Февраль 11, 2023, 19:41 »
Не я один. В сети есть предположения, что make ошибается с зависимостями при многопоточной сборке.
Записан
Qt 5.13.0 Qt Creator 5.0.1
Win10, Ubuntu 20.04
tux
Global Moderator
Бывалый
Offline
Сообщений: 404
Re: программа зависает (Tcp network)
«
Ответ #7 :
Февраль 11, 2023, 19:45 »
Цитата: kambala от Февраль 11, 2023, 19:35
вот это поворот
ни разу еще не ловил проблем из-за этого
Мало собираете, видимо. Или не линуксоид.
Иногда пакеты мира могут не собраться именно из-за многопоточной сборки. Логика в том, что зависимый объектный файл может начать собираться позже, чем необходимо. Ошибка странная, если опыта не имеешь - вообще не понимаешь, что происходит. Стоит поставить -j1 - все собирается уже нормально.
«
Последнее редактирование: Февраль 11, 2023, 20:08 от tux
»
Записан
Digital Art
kambala
Джедай : наставник для всех
Offline
Сообщений: 4747
Re: программа зависает (Tcp network)
«
Ответ #8 :
Февраль 11, 2023, 20:36 »
ну «миры» не собираю, конечно, но при сборке той же Qt ни разу на такое не напарывался
а мэйк же на всех платформах одинаковый
Записан
Изучением C++ вымощена дорога в Qt.
UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
tux
Global Moderator
Бывалый
Offline
Сообщений: 404
Re: программа зависает (Tcp network)
«
Ответ #9 :
Февраль 11, 2023, 21:18 »
Цитата: kambala от Февраль 11, 2023, 20:36
ну «миры» не собираю, конечно, но при сборке той же Qt ни разу на такое не напарывался
а мэйк же на всех платформах одинаковый
Проблема не в "мэйке"
Допустим ваше приложение состоит из 100500 плагинов, каждый из которых собирается на базе предыдущего (что-то типа наследования). При однопоточной сборке всё будет прекрасно. А вот при многопоточной будут проблемы. Если сильно интересно, можно поискать на форумах gentoo - там встречаются иногда ошибки совершенно иррациональные. Да, так программу лучше не строить,но если хочется, то можно.
Записан
Digital Art
kambala
Джедай : наставник для всех
Offline
Сообщений: 4747
Re: программа зависает (Tcp network)
«
Ответ #10 :
Февраль 11, 2023, 21:31 »
вполне может быть проблема именно мэйка, а какие-нибудь более умные сборщики типа ниндзи могут обрабатывать подобные ситуации (не утверждаю, что это действительно так)
Записан
Изучением C++ вымощена дорога в Qt.
UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
tux
Global Moderator
Бывалый
Offline
Сообщений: 404
Re: программа зависает (Tcp network)
«
Ответ #11 :
Февраль 11, 2023, 21:53 »
Цитата: kambala от Февраль 11, 2023, 21:31
а какие-нибудь более умные сборщики типа ниндзи могут
И с ними бывают точно такие же проблемы (с ninja точно видел). Проблема то в архитектуре проекта, а не в самом сборщике. Да и есть чуть ли не поколение программистов (в основном на JAVA, конечно), которые могут отдельную функцию положить в отдельный класс, потом все 100500 файлов положить в один проект.
Записан
Digital Art
kambala
Джедай : наставник для всех
Offline
Сообщений: 4747
Re: программа зависает (Tcp network)
«
Ответ #12 :
Февраль 11, 2023, 23:07 »
я подумал, речь конкретно о сборщике при правильной архитектуре
так-то конечно, любой сборщик упадет.
Записан
Изучением C++ вымощена дорога в Qt.
UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Noize_programmer
Чайник
Offline
Сообщений: 91
работает не трогай
Re: программа зависает (Tcp network)
«
Ответ #13 :
Февраль 12, 2023, 10:14 »
Цитата: kambala от Февраль 11, 2023, 13:58
вот тут как раз нужен не вывод сборки, а вывод приложения (для сервера ты именно его выложил
). По выводу сервера видно, что он не зависает, а завершается без ошибок (код 0). Значит клиент зависает?
да зависает клиент
вывод приложения клиент:
10:11:22: Запускается F:\Qt_project\5.0.2\lesons\Book\TCP_client\build-TCP_client-Desktop_Qt_5_12_12_MinGW_64_bit-Debug\debug\TCP_client.exe ...
10:11:25: Не удалось получить отладочный вывод.
10:13:35: Программа неожиданно завершилась.
10:13:35: Процесс был завершён принудительно.
10:13:35: F:\Qt_project\5.0.2\lesons\Book\TCP_client\build-TCP_client-Desktop_Qt_5_12_12_MinGW_64_bit-Debug\debug\TCP_client.exe аварийно завершился.
вывод приложения сервер:
10:11:22: Запускается F:\Qt_project\5.0.2\lesons\Book\TCP_server\build-TCP_server-Desktop_Qt_5_12_12_MinGW_64_bit-Debug\debug\TCP_server.exe ...
10:13:44: F:\Qt_project\5.0.2\lesons\Book\TCP_server\build-TCP_server-Desktop_Qt_5_12_12_MinGW_64_bit-Debug\debug\TCP_server.exe завершился с кодом 0
Записан
Официальная стандартизация языка с++ началась в 1998 году, когда был опубликован стандарт языка ISO/IEC 14882:1998(известный как C++98), разработанный комитетом по стандартизации C++(ISO/IEC JTC1/SC22/WG21 working group)
kambala
Джедай : наставник для всех
Offline
Сообщений: 4747
Re: программа зависает (Tcp network)
«
Ответ #14 :
Февраль 12, 2023, 11:17 »
запустил у себя: так у тебя зависает (при запуске) из-за бесконечного цикла в SReadyRead(), судя по всему (смог лишь раз воспроизвести). можешь в этом удостовериться, запустив с отладкой (кнопка зеленого треугольника с жучком) и нажав на паузу во время зависания: отладчик покажет в каком месте кода находятся все потоки приложения.
отправка сообщения с клиента роняет сервер, проблема в строке myserver.cpp:64 (вероятно сокет является нулевым указателем).
P.S. сигнала returnPresed не существует, об этом сказано в выводе приложения.
Записан
Изучением C++ вымощена дорога в Qt.
UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Страниц: [
1
]
2
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...