Имею код на стороне клиента:
void CAptekaClient::send(quint8 code, QString text)
{
m_socket->waitForConnected();
if (m_waiting) {
m_socket->waitForReadyRead();
}
QString textCode;
textCode.setNum(code, 10);
qDebug() << "Sending..." << endl << "CODE: " << textCode << " TEXT: " << text;
QDataStream data(m_socket);
quint32 bytesSend = 0;
QByteArray message = text.toUtf8();
bytesSend += (int)sizeof(quint32);
bytesSend += (int)sizeof(quint8);
bytesSend += message.size();
data << bytesSend << code; //************* ТУТ
if (text.length() > 0) {
QTextStream textData(data.device());
textData << message;
}
m_socket->flush(); //************* ТУТ
Делаю очередь «посылок» команд серверу. А точнее, три: привет, авторизируй, прочитай данные. В момент отсыла третьей команды происходит следующее:
QSocketNotifier: socket notifiers cannot be enabled from another thread
QSocketNotifier: socket notifiers cannot be disabled from another thread
Первая ошибка возникает на строке с первым комментарием «тут», вторая - на второй.
Помогите разобраться, пожалуйста, почему они возникают? По потокам не прыгаю в момент отсылки. Из других потоков в этот момент ЕМНИП ничего не происходит (все ждут). Так в чем проблема?