Многопоточный эхо сервер, работает но несовсем как задумано... |
Здравствуйте, гость ( Вход | Регистрация )
Многопоточный эхо сервер, работает но несовсем как задумано... |
AntonTatu |
4.3.2010, 10:56
Сообщение
#1
|
Студент Группа: Участник Сообщений: 48 Регистрация: 27.11.2008 Пользователь №: 437 Спасибо сказали: 0 раз(а) Репутация: 0 |
Учусь программированию по книге Земскова Юрия, пытаюсь разобраться с его примером клиент - многопоточный эхо сервер, понять немогу почему НЕ работает вот такая конструкция, т.е. в примере она есть но m_threads при удалении потока не уменьшается. Очень нужно с этим разобраться !.
Пример полностью в файле. echo.zip ( 3,32 килобайт ) Кол-во скачиваний: 175 |
|
|
Litkevich Yuriy |
4.3.2010, 11:21
Сообщение
#2
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
|
|
|
AntonTatu |
4.3.2010, 11:42
Сообщение
#3
|
Студент Группа: Участник Сообщений: 48 Регистрация: 27.11.2008 Пользователь №: 437 Спасибо сказали: 0 раз(а) Репутация: 0 |
а что такое m_threads, список (QList)? QList<EchoThread*> m_threads; ну да, принцип такой, создается соединение, сокет, поток, поток добавляется в список потоков m_threads, про метод void EchoServer::removeThread() автор пишет следующее: "При получении сигнала о завершении потока выясняем какой именно поток сгенерировал этот сигнал, ставим этот поток в очередь на уничтожение и удаляем из списка потоков", но дело в том что я не вижу что бы thread в методе получал какое либо значение, соответственно и m_threads не уменьшается... |
|
|
Litkevich Yuriy |
4.3.2010, 12:17
Сообщение
#4
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
но дело в том что я не вижу что бы thread в методе получал какое либо значение о каком значении идёт речь?в коде не достаточно проверок. Попробуй такой код: увидишь кое что интересное
|
|
|
AntonTatu |
4.3.2010, 12:21
Сообщение
#5
|
Студент Группа: Участник Сообщений: 48 Регистрация: 27.11.2008 Пользователь №: 437 Спасибо сказали: 0 раз(а) Репутация: 0 |
о каком значении идёт речь? неправильно выразился, почему то в этом методе не получается выяснить какой именно поток сгенерировал сигнал о завершении потока соответственно не срабатывает
т.е. не работает
и я немогу разобраться почему.... |
|
|
Litkevich Yuriy |
4.3.2010, 12:40
Сообщение
#6
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
|
|
|
AntonTatu |
4.3.2010, 13:23
Сообщение
#7
|
Студент Группа: Участник Сообщений: 48 Регистрация: 27.11.2008 Пользователь №: 437 Спасибо сказали: 0 раз(а) Репутация: 0 |
у меня только одна мысль, он к этому моменту уже мертв. Темболее что в консоль пишатся ругань, о том, что postEvent отправлен в тьму тараканью да ругань я и сам вижу... немогу ничего придумать что бы заработало правильно..... у меня только одна мысль, он к этому моменту уже мертв. Темболее что в консоль пишатся ругань, о том, что postEvent отправлен в тьму тараканью да ругань я и сам вижу... немогу ничего придумать что бы заработало правильно..... все разобрался, все дело в сигнале ... создается поток , после него сигнал который не должен быть DirectConnection.... |
|
|
Текстовая версия | Сейчас: 27.12.2024, 14:49 |