【发布时间】:2019-02-09 13:30:35
【问题描述】:
我即将使用QTcpServer 编写一个小型服务器,旨在通过e 连接。 G。一个远程登录客户端。只会发送文本。
Qt 的幸运饼干服务器示例使用QDataStream 通过以下代码使用QTcpSocket 发送文本:
QByteArray block;
QDataStream out(&block, QIODevice::WriteOnly);
out.setVersion(QDataStream::Qt_5_10);
out << "Some Text";
socket->write(block);
如果不想发送二进制数据,像这样直接发送 Unicode 数据有什么缺点吗(所有相关人员都知道我们使用的是 UTF-8):
socket->write(QString::fromUtf8("Some text").toUtf8);
?
【问题讨论】:
-
在这两种情况下,您都将
QByteArray作为参数传递,因此不应该有任何差异。如果您只想发送文本,则可以改用QTextStream。 -
QDataStream的主要优点是您不必关心序列化。否则你必须自己做消息分离
标签: c++ qt qt5 qtcpsocket qtcpserver