qt c ++使用tcp协议发送6个字节

时间:2017-12-08 12:47:01

标签: c++ qt tcp qbytearray qdatastream

大家好,首先我是网络编程的新手,所以这可能是一个简单的问题,但我不明白。我尝试使用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;。

我做错了什么?

0 个答案:

没有答案