Здравствуйте, гость ( Вход | Регистрация )
|
fortero |
6.10.2011, 13:49
Сообщение
#1
|
|
Участник ![]() ![]() Группа: Участник Сообщений: 132 Регистрация: 4.12.2010 Пользователь №: 2242 Спасибо сказали: 0 раз(а) Репутация: 0
|
Господа специалисты, подскажите как быть с QThread как бы всё работает но при закрытии последнего окна виджета программа висит, тред дальше пашет...
Подскажите где я ошибся: secondclass.cpp Спасибо за внимание! |
|
|
|
![]() |
|
silver47 |
7.10.2011, 18:18
Сообщение
#2
|
|
Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 356 Регистрация: 1.4.2010 Пользователь №: 1584 Спасибо сказали: 40 раз(а) Репутация: 6
|
С Qt идет пример Thread Fortune Server, но его особенность такова:
входящее соединение -> создается поток, поток делает свою работу по списку последовательно и завершается Вы внесли изменение, воткнули цикл forever в поток. Это не есть верно. посмотрим на то, что содержит реализация потока сервера. Она состоит из конструктора класса и метода run: Что поменять? Логично, что сокет нужно создавать в конструкторе и не на стеке а на куче т.е так: Соединить необходимые сигналы... здесь конкретно самым необходимым будет socket::readyRead(), который сообщает о том что данные в сокет просочились. А в методе run достаточно будет лишь запустить обработчик событий: В догонку измененный текст QThreadFortune Server. Теперь он создает сокет, и молчит, при получении данных вываливает их в дебаг. Висит до тех пор пока клиент не отключиться. Ждет подключения на любом адресе на порту пять пятерок При подключении с локалхоста так и указывайте в терминале localhost:55555 Сообщение отредактировал silver47 - 7.10.2011, 18:42
Прикрепленные файлы
|
|
|
|
fortero QThread не прекращает работу((( 6.10.2011, 13:49
silver47 Неверно используете поток. 6.10.2011, 14:01
fortero Покажите как надо... А то я только такого типа при... 6.10.2011, 15:09
RazrFalcon thread->quite(); 6.10.2011, 15:49
fortero Не получается всёравно весит!
Покажите пожалу... 6.10.2011, 15:59
silver47 Если вы делаете цикл типа:
while(someBoolVaria... 6.10.2011, 17:37
fortero Спасибо попробую.
Цитата(silver47 @ 6.10.201... 6.10.2011, 20:49
fortero Ребят, я что то не догоняю или совсем тупой.
Пожал... 6.10.2011, 21:53
silver47 Сокеты нужно слушать не в постоянном цикле, а запу... 7.10.2011, 4:00
fortero Цитата(silver47 @ 7.10.2011, 4:00) Сокеты... 7.10.2011, 14:23
ssoft Пардон, не всю тему прочитал.
А так если вернутьс... 8.11.2011, 15:54
fortero Всем спасибо разобрался! 8.10.2011, 13:32
sidsukana Сделал все как сказано. В конструкторе инициализац... 7.11.2011, 22:09
Гость_AK_ Простите, может немного не по теме, но имел очень ... 8.11.2011, 11:18
Galaxycon Вот что смущает...
В переделанном примере (аттач ... 17.4.2012, 14:07![]() ![]() ![]() |
|
Текстовая версия | Сейчас: 3.1.2026, 11:22 |