Передача данных в отдельном потоке. Сервер не успевает обработать данные. |
Здравствуйте, гость ( Вход | Регистрация )
Передача данных в отдельном потоке. Сервер не успевает обработать данные. |
kibsoft |
14.4.2010, 14:23
Сообщение
#11
|
Участник Группа: Участник Сообщений: 180 Регистрация: 21.7.2009 Из: Самара Пользователь №: 928 Спасибо сказали: 14 раз(а) Репутация: 2 |
Проверь несколько раз, сколько байт (какими порциями) реально читает эта функция из сокета:
Read data size from socket: 1024 Read data size from socket: 0 Файл 59 Кб. Все рушится после 2 раза вызова слота обработки (readBytes), т.е. первый раз приходит как положено 1031 байт(вместе с nextBlockSize), при следующем вызове слота в nextBlockSize появляется 30 тысяч с лишним байт (размер следующего блока), потом if(tcpSocket->bytesAvailable()<nextBlockSize) break; тут пару раз происходит выход из слота, т.к.30 тысяч байт еще не пришли, а потом выходит косяк с этим: в reguest вместо 0 или 1 попадает 97 вроде.
|
|
|
BRE |
14.4.2010, 14:34
Сообщение
#12
|
Профессионал Группа: Участник Сообщений: 1112 Регистрация: 6.3.2009 Из: Ростов-на-Дону Пользователь №: 591 Спасибо сказали: 264 раз(а) Репутация: 44 |
А покажи как определены: FILEBYTES, SENDING_FINISHED
|
|
|
kibsoft |
14.4.2010, 14:35
Сообщение
#13
|
Участник Группа: Участник Сообщений: 180 Регистрация: 21.7.2009 Из: Самара Пользователь №: 928 Спасибо сказали: 14 раз(а) Репутация: 2 |
А покажи как определены: FILEBYTES, SENDING_FINISHED
|
|
|
BRE |
14.4.2010, 14:41
Сообщение
#14
|
Профессионал Группа: Участник Сообщений: 1112 Регистрация: 6.3.2009 Из: Ростов-на-Дону Пользователь №: 591 Спасибо сказали: 264 раз(а) Репутация: 44 |
Попробуй сиправить отсылку:
Сообщение отредактировал BRE - 14.4.2010, 14:41 |
|
|
kibsoft |
14.4.2010, 14:48
Сообщение
#15
|
Участник Группа: Участник Сообщений: 180 Регистрация: 21.7.2009 Из: Самара Пользователь №: 928 Спасибо сказали: 14 раз(а) Репутация: 2 |
Да я вечером уже этот глюк нашел и исправил, но все равно неправильно работает
Вот исходники 3 классов: сервер, поток-приемщик и отправитель. Может поможет Вам разобраться точней.. |
|
|
BRE |
14.4.2010, 14:54
Сообщение
#16
|
Профессионал Группа: Участник Сообщений: 1112 Регистрация: 6.3.2009 Из: Ростов-на-Дону Пользователь №: 591 Спасибо сказали: 264 раз(а) Репутация: 44 |
Попробуй изменить так:
|
|
|
kibsoft |
14.4.2010, 15:02
Сообщение
#17
|
Участник Группа: Участник Сообщений: 180 Регистрация: 21.7.2009 Из: Самара Пользователь №: 928 Спасибо сказали: 14 раз(а) Репутация: 2 |
Цитата Read data size from socket: 0 Read data size from socket: 0 Щас попробую сделать эту же задачу, но в GUI-потоке, посмотрю будет ли работать.. P.S. У нас День Рождения одинаковый http://rghost.ru/1381290 исходники Сообщение отредактировал kibsoft - 14.4.2010, 15:03 |
|
|
BRE |
14.4.2010, 15:05
Сообщение
#18
|
Профессионал Группа: Участник Сообщений: 1112 Регистрация: 6.3.2009 Из: Ростов-на-Дону Пользователь №: 591 Спасибо сказали: 264 раз(а) Репутация: 44 |
Блин, quint8 забыл добавить:
P.S. Ты бы проект сбросил, что бы его собрать можно было. А то гадать уже надоело. Сообщение отредактировал BRE - 14.4.2010, 15:08 |
|
|
kibsoft |
14.4.2010, 15:08
Сообщение
#19
|
Участник Группа: Участник Сообщений: 180 Регистрация: 21.7.2009 Из: Самара Пользователь №: 928 Спасибо сказали: 14 раз(а) Репутация: 2 |
Вы уже это писали Я же сказал, что еще вчера это исправил, но все равно не работает. У меня с quint8 сейчас.
|
|
|
kibsoft |
14.4.2010, 16:36
Сообщение
#20
|
Участник Группа: Участник Сообщений: 180 Регистрация: 21.7.2009 Из: Самара Пользователь №: 928 Спасибо сказали: 14 раз(а) Репутация: 2 |
BRE, спасибо за разные подсказки! Сейчас посидел, подумал - неправильно вообще я алгоритм организовал, понял в чем дело, буду перерабатывать. Загвоздка как раз в типе запроса(request).
|
|
|
Текстовая версия | Сейчас: 28.11.2024, 8:54 |