我下载的最新的SDK 4.6,里面有个例子,下载官方地址如下:
http://doc.qt.nokia.com/4.6/network-threadedfortuneserver.htmlThreaded Fortune Server Example
这是一个代码中的一段,是服务器返回数据给客户端的代码。我比较有疑问的是,最后2句。是不是我注释掉,就能保持永久连接了?
实际操作中,我发现注释后,客户端什么都收不到。直接报连接中断。这该怎么办啊?
我就想在这个样例代码的基础上改改,达到实在服务器单方面对长连接的客户端不断发送消息,客户端持续更新字符串的。请问该怎么改造了实现?
void FortuneThread::run()
{
QTcpSocket tcpSocket;
QByteArray block;
QDataStream out(&block, QIODevice::WriteOnly);
out.setVersion(QDataStream::Qt_4_0);
out << (quint16)0;
out << text;
out.device()->seek(0);
out << (quint16)(block.size() - sizeof(quint16));
//! [3] //! [4]
tcpSocket.write(block);
tcpSocket.disconnectFromHost();
tcpSocket.waitForDisconnected();
}