在 Qt 的 fortuneserver 示例中,方法 发送了一个 QString sendFortune()
。因此从 QStringList 中选择一个 QString fortunes
:
QByteArray block;
QDataStream out(&block, QIODevice::WriteOnly);
out.setVersion(QDataStream::Qt_4_0);
out << (quint16)0;
out << fortunes.at(qrand() % fortunes.size());
out.device()->seek(0);
out << (quint16)(block.size() - sizeof(quint16));
QTcpSocket *clientConnection = tcpServer->nextPendingConnection();
clientConnection->write(block);
是否也可以发送其他类型的数据,如文件、图像或多个字符串?还是只能发送一个字符串?
我的第二个问题:作为 QByteArry 发送数据有什么好处,为什么我必须(quint16)
通过设置 QDataStream 来定义?