crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

kas
  опции профиля:
сообщение 16.6.2010, 18:42
Сообщение #1


Новичок


Группа: Новичок
Сообщений: 8
Регистрация: 16.6.2010
Пользователь №: 1813

Спасибо сказали: 0 раз(а)




Репутация:   0  


здравствуйте! возникла проблема с QTcpSocket. Есть простой клиент, который читает блоками файл и отправляет его на сервер. Сервер: получает данные и записывает их на диск. И возникает такая проблема, что при приеме данных, в некоторый момент времени перестает посылаться сигнал readyRead. При этом данные в буфер сокета записываются и они доступны для чтения. Кто-нибудь сталкивался с такой проблемой? Подскажите в чем может быть причина. Заранее спасибо.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
PAFOS
  опции профиля:
сообщение 16.3.2011, 9:13
Сообщение #2


Активный участник
***

Группа: Участник
Сообщений: 258
Регистрация: 27.12.2010
Из: Дмитров
Пользователь №: 2309

Спасибо сказали: 29 раз(а)




Репутация:   8  


Может быть не в этом проблема, но все равно у тебя баг:

void dbClientThread::run()
{
s=new QTcpSocket(this);
....

у тебя родительский объект будет экземпляр dbClientThread, который создан в потоке А.
а сам создаваемый объект будет находится в потоке Б

В связи с этим сигналы от QTcpSocket будут обрабатываться в потоке А (или могут вообще до него не доходить, я точно не помню)

Я делаю так:

dbClientThread *thread = new dbClientThread();
thread->start();
thread->moveToThread(thread); // теперь все методы dbClientThread будут обрабатываться в потоке, который был создан в методе run(). т.е. теперь thread обрабатывает сам себя

ну и в методе dbClientThread::run() при создании сокета не указывай родителя.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 12.7.2025, 7:56