Здравствуйте, гость ( Вход | Регистрация )
|
Andrewshkovskii |
15.5.2010, 18:50
Сообщение
#1
|
|
Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 351 Регистрация: 27.12.2008 Пользователь №: 467 Спасибо сказали: 18 раз(а) Репутация: 1
|
Есть клиент (наслденик QTcpSocket) , в нем реализованы функции запроса к серверу :
Сервер от QTcpServer : И клиентский поток от QThread : Первый раз пишу клиент/сервер. Но почему-то у меня не запускается поток, т.е. получается что сокет не генирирует сигнал readyRead? А почему, ведь данные приходят от клиента..нет ? Сообщение отредактировал Andrewshkovskii - 15.5.2010, 19:34 |
|
|
|
![]() |
|
Andrewshkovskii |
16.5.2010, 21:51
Сообщение
#2
|
|
Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 351 Регистрация: 27.12.2008 Пользователь №: 467 Спасибо сказали: 18 раз(а) Репутация: 1
|
Ну с forever на получение полных данных я понял.но у меня другая проблема. Что бы запустить цикл обработки событий в функции run() потока я использую
exec() : Если не запускать - брокер не поймает сигнал , и ничего не произойдет. И вот ещё насчет брокера запросов.. : Я получаю на такие данные вот такой отладочный вывод : Цитата reading client true 7 total bytes 344832 before read request is : И поток не завершается без exit() , т.е. поток остается в незавершенном режиме и не удаляется. Из брокера я не могу вызвать ни exec() ни exit, разве что явно указать parent'a ему, и через указатель на родителя вызывать. Но основная проблема в том, что я не могу никак написать код, который бы читал/принимал данные корректно. |
|
|
|
|
kibsoft |
17.5.2010, 12:15
Сообщение
#3
|
|
Участник ![]() ![]() Группа: Участник Сообщений: 180 Регистрация: 21.7.2009 Из: Самара Пользователь №: 928 Спасибо сказали: 14 раз(а) Репутация: 2
|
после exec() уже ничего никогда не выполниться. тут return надо.exit можно связать с сигналом disconnected сокета, а при создании объекта ClientThread в сервере - указать deleteLayer, чтобы объект удалялся при выходе из цикла событий. |
|
|
|
Andrewshkovskii Как правильно читать данные с многопоточным сервером? 15.5.2010, 18:50
kibsoft Threaded Fortune Server Example посмотри его в асс... 15.5.2010, 19:12
Andrewshkovskii Т.е. что бы обработать readyRead в потоке (проще г... 15.5.2010, 19:21
kibsoft Цитата(Andrewshkovskii @ 15.5.2010, 20:21... 15.5.2010, 19:45
Andrewshkovskii Я попробовал сделать вот так :
void ClientThread... 16.5.2010, 15:04
kibsoft socket->write(block); нельзя использовать объек... 16.5.2010, 15:45
Andrewshkovskii Мне передать указатель на сокет в этот объект, или... 16.5.2010, 16:09
kibsoft ЦитатаА нельзя ли сокет "передвинуть" ( ... 16.5.2010, 18:21
Litkevich Yuriy Цитата(kibsoft @ 17.5.2010, 16:15) уже ни... 17.5.2010, 12:37
Andrewshkovskii Спасибо, Kibsoft, я пока решил свою проблему, но с... 17.5.2010, 12:41![]() ![]() ![]() |
|
Текстовая версия | Сейчас: 5.3.2026, 2:17 |