QT 中 TCP 套接字上的 0x00 十六进制
0x00 hex over TCP socket in QT
我在通过 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?
您正在从字符串构造 QByteArray
,但字符串以字符 0 终止。因此您的数组为空。
const QByteArray sender(1, '[=10=]');
我在通过 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?
您正在从字符串构造 QByteArray
,但字符串以字符 0 终止。因此您的数组为空。
const QByteArray sender(1, '[=10=]');