Здравствуйте, 00011011, Вы писали:
0>Сделал прием udp в отдельном потоке. Но стабильно ловится только первый пакет. 0>Дальше начинается странное — иногда, если походить в отладке, вновь приходим в слот приема. Если без отладки, то не приходит больше одного раза.
1. Вы используете "this" в connect. QThread тоже QObject,
и он имеет связанный с ним поток и этот поток это не он сам. А вот
"socket" создан в самом потоке, в результате не только сигналы
доставляются через очередь сообщения, а не прямым вызовом,
но и есть явная "data-race". Так как "onReceive" вызывается в другом потоке,
а обращается к сокету из потока Receiver.
Вообще наследование от QThread это плохой подход в современном Qt.
Все реализовано так, что можно обойтись без этого.
2. Нужно к другим сигналам подключиться, по крайней мере к тем что сообщают об изменении
состояния и ошибках: errorOccurred/stateChanged