![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
KuvshinoF |
![]()
Сообщение
#1
|
Студент ![]() Группа: Участник Сообщений: 74 Регистрация: 25.7.2013 Пользователь №: 3887 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Задача следующая - постоянно корректно читать сетевые данные (предполагается при запуске потока запускать таймер вычитывания (если они есть конечно) раз в секунду данных из сети). Пример выше не работает - говорит "timer cannot be started from another thread". DataTimer обязателен для некой обработки ситуации отсутствия сетевых данных. И как лучше читать данные - как в примере выше или вместо if сделать while с int size=socket.pendingdatagramsize();? Или лучше как-то по-другому считывать данные? (пробовал вместо таймера запуска чтения данных использовать while(1) {чтение данных} прямо в run, но тогда возникает та же ошибка с таймером DataTimer, который обязателен) |
|
|
![]() |
Алексей1153 |
![]()
Сообщение
#2
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2943 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: ![]() ![]() ![]() |
udpsocket.readDatagram() - выдается ошибка "socket notifiers cannot be enabled or disabled from another thread" - как это поправить такая же песня, что была с QTimer DataTimer; ак при таком методе считывания (п.1) можно ловить (если не таймером) момент отсутствия данных? элементарно: если udpsocket.hasPendingDatagrams() вернёт false, значит данных нет )) и если processEvents (пост №4) вернул false, значит не было никакой движухи. Тогда можно небольшой слип вызвать ------------------ если не получается, то прикрепи демонстрационный проект, чтобы было с чем покопаться. |
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 11.4.2025, 15:14 |