QT中TCP套接字上的0x00十六进制

时间:2015-06-03 09:31:32

标签: qt tcp hex bytearray

我在通过tcp发送0x00时遇到问题。 像0x01这样的数据是可以的,服务器接收为00000001,但是当它是0x00时 - 在服务器上没有接收消息。

客户代码:

QByteArray sender="\x00";
socket.write(sender);

服务器代码:

    QByteArray Data = socket->readAll();
    QString str = QString(Data.toHex());
    qDebug()<<str;

    //disp bytes
    char myByte = Data.at(0);

    for (int i = 7; i >= 0; --i) 
    {
        qDebug() << ((myByte >> i) & 1);
    }

我如何发送0x00十六进制?

1 个答案:

答案 0 :(得分:2)

您正在从字符串构造QByteArray,但字符串由字符0终止。因此您的数组为空。

使用different constructor,即

const QByteArray sender(1, '\0');