大家好,首先我是网络编程的新手,所以这可能是一个简单的问题,但我不明白。我尝试使用tcp socket将6字节发送到微控制器。为了使用qdatastream和qbytearray序列化我的数据。这就是我尝试这样做的方式:
QByteArray buffer;
QDataStream outputStream(&buffer, QIODevice::WriteOnly);
outputStream.setVersion(QDataStream::Qt_5_8);
outputStream << (quint8) 0
<< (quint8) dataMessage.prefix
<< (quint8) dataMessage.paramID
<< (quint32) dataMessage.data;
outputStream.device()->seek(0);
outputStream << (quint8)(buffer.size() - sizeof(quint8));
qDebug() << buffer;
qDebug() << quint32(dataMessage.data);
sock->write(buffer);
if(sock->write(buffer) == -1)
{
return -1;
}
sock->flush();
我的struct dataMessage看起来像这样:dataMessage = {15,1,9400000} 在我的缓冲区中,我希望这个字节序列&#34; \ x06 \ xF0 \ x01 \ x00 \ x8F \ 6E \ xC0&#34; 但我总是得到以下输出&#34; \ x06 \ xF0 \ x01 \ x00 \ x8Fn \ xC0&#34;。
我做错了什么?