So, your are creating a QTcpSocket in one thread and then expecting to read from it in another thread. That is not going to be reliable.

In fact, if you have "exec" in your constructor, I'm surprised it even returns

You don't even need threads for multiple connections. All connections can be handled in the main thread.