0

我需要从 C# 客户端(3.5)向 QT 服务器发送一个字符串行。一切正常,除了在服务器端我必须检查前 2 个字节的行的大小。(我不能只是无限循环列出客户端)。我尝试将行的大小设置为行的第一个字节,但它在服务器端读取错误。所以问题是如何将字符串的长度放入字符串的前 2 个字节中?.

在 QT 中是这样完成的:

QByteArray arrBlock;
QDataStream out(&arrBlock, QIODevice::WriteOnly);
out << quint16(0) << "string";
out.device() -> seek(0);
out << **quint16(arrBlock.size() - sizeof(quint16));**
socket->write(arrBlock);

但在 C# 中它只是

NetworkStream serverStream;
byte[] bytes = ...GetBytes("string");
serverStream.write
serverStream.flush

我找不到将大小写入服务器的消息的方法。

4

0 回答 0