Hi everyone,
I'm developing an application reading from an UDP port. All works fine, before I don't try to change the port it's listening on. Then I got the run-time message:

QSocketNotifier: Socket notifiers cannot be enabled or disabled from another thread
QObject: Cannot create children for a parent that is in a different thread.
(Parent is QUdpSocket(0x3564c50), parent's thread is UDPListener(0x35533f0), current thread is QThread(0x39b540)
QObject::killTimer: Timers cannot be stopped from another thread

Socket is created inside a run() function of class which inherits class Listener which is based on QThread()

Qt Code:
  1. void UDPListener::run()
  2. {
  3. socket = new QUdpSocket;
  4. socket->bind(port);
  5. connect(socket, SIGNAL(readyRead()), this, SLOT(readUDP()), Qt::DirectConnection);
  6. connect(this, SIGNAL(reconnectNow()), this, SLOT(reconnectPrivate()), Qt::QueuedConnection);
  7. exec();
  8. emit connectionStatus(false);
  9. socket->deleteLater();
  10. }
  11.  
  12. Slot reconnecting socket and binding to other port:
  13. void UDPListener::reconnectPrivate()
  14. {
  15. socket->disconnectFromHost();
  16. socket->bind(port);
  17. }
To copy to clipboard, switch view to plain text mode 

Class listener has a method called reconnect() which emits the signal reconnectNow(), connected (inside run()) to reconnectPrivate()
Qt Code:
  1. void Listener::reconnect()
  2. {
  3. emit reconnectNow();
  4. }
To copy to clipboard, switch view to plain text mode 

Because I use Qt::QueuedConnection it should be in this same thread with socket, where the exec() function is. In fact, the binding to the new port works and the socket reconnects, but there's a error message like above, followed by a repetitive error:
QObject::killTimer: Timers cannot be stopped from another thread

Any idea please? I have none anymore.