void Worker::StopWork()
{
qDebug() << "Client #" << mID << " disconnected\n";
mUserSocket->close();
delete mUserSocket;
mUserSocket = nullptr;
emit StopThread(mID);
}
void Worker::StartWork()
{
mUserSocket = new QTcpSocket;
mUserSocket->setSocketDescriptor(mSockD);
connect(mUserSocket, &QTcpSocket::disconnected, this, &Worker::StopWork);
qDebug() << "Check\n";
}
1) Есть главный поток, в котором производилось подключение к серверу.
2) В определенный момент я создаю 2й поток для приема сообщений от сервера, туда я передаю дескриптор сокета.
3) Во 2м потоке я создаю новый сокет по дескриптору старого и там же, во 2м потоке, делаю connect
Вот и все. Я сам еще плохо понимаю, как работают сокеты в Qt...
Когда сервер отправляет данные, они, почему-то, приходят в тот сокет, который в главном потоке. А там-то никаких connect'ов нету! К слову, ради теста я сделал в главном потоке тот самый connect, и все заработало, но мне нужно во 2м потоке