Здравствуйте, гость ( Вход | Регистрация )
|
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() при создании сокета не указывай родителя. |
|
|
|
kas передача данных через QTcpSocket 16.6.2010, 18:42
ViGOur В коде.
Покажи код, его думаю немного должно быть.... 16.6.2010, 21:58
inviZ kas, скорее всего в обработчике readyRead ты считы... 17.6.2010, 5:41
kas inviZ, спасибо всем за отклик. я уже нашел причину... 17.6.2010, 17:09
ViGOur Так опиши решение для следующих страждуших! 17.6.2010, 20:10
Lemon черт...плохо, что топикстартер не описал решения.
... 15.3.2011, 19:29
Lemon Проблему решило
dbClientThread *thread = new dbCli... 17.3.2011, 16:35
PAFOS Ты уверен что приложение работает так как ты хочеш... 22.3.2011, 9:37
Алексей1153 PAFOS, зачётный шрифт 22.3.2011, 11:31
PAFOS это есть Comic Sans ) 23.3.2011, 17:26![]() ![]() ![]() |
|
Текстовая версия | Сейчас: 27.12.2025, 8:59 |