В образце Qt для сервера состояний QString отправляется методом sendFortune()
. Поэтому одна QString выбирается из QStringList fortunes
:
QByteArray block;
QDataStream out(&block, QIODevice::WriteOnly);
out.setVersion(QDataStream::Qt(quint16)
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?