Hello,

I extended Threaded fortune to send message in infinite loop as below,
but then it only send once and I get the socket error. I've not
changed the fortune client but I only press Get fortune once and
expect the message to be sent continuously which isn't a case.

Is it really needed to abort() the tcpSocket from the client side and
connectToHost per message? Doing so I get the incomingConnection and
removing the forever loop of the below function it works as expected?



void FortuneThread::run()
{

   forever
    {
        QTcpSocket tcpSocket;
        QString temp_text =  text.at(qrand() % text.size());
        qDebug() << "text from thread" << temp_text;
        if (!tcpSocket.setSocketDescriptor(socketDescriptor)) {
            emit error(tcpSocket.error());
            qDebug() <<  "socket error";
            return;
        }
        QByteArray block;
        QDataStream out(&block, QIODevice::WriteOnly);
        out.setVersion(QDataStream::Qt_4_0);
        out << temp_text;
        //! [3] //! [4]

        tcpSocket.write(block);
        tcpSocket.disconnectFromHost();
        tcpSocket.waitForDisconnected();

    }
 }
}


Any clue?

-- 
          Nilesh Kokane
_______________________________________________
Interest mailing list
Interest@qt-project.org
http://lists.qt-project.org/mailman/listinfo/interest

Reply via email to