我准备使用QTcpServer
编写一个小型服务器,该服务器旨在通过e连接。 G。一个telnet客户端。只会发送文字。
Qt的幸运cookie服务器示例使用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);
?
直接发送UTF-8数据没有任何缺点,但您需要有一些方法来分离接收端的数据包(单元)。如果它是全文,则通过将输入数据分成接收端的行来完成。 QDataStream
并不关心它中的任何一个,并且在线路级别,发送32位长度的发送字节串,然后是这些字节。因此,无论数据包的内容有多长,它的内容都不会有任何歧义:它甚至可能是0字节长。