void My_socket::on_ReadBackText()
{
qint64 DataNum = tcpSocket.bytesAvailable();//获得TCP需要read的字节数
char data[35] = {0};
qint64 num = tcpSocket.read(data, DataNum);
qDebug("返回的数据包有%d位,值为%s",DataNum,data);
if (num <= 0) {
ui.ReceiveWid->appendPlainText(QString::fromLocal8Bit("获取继电器状态失败....."));
}
else {
int DataLen = strlen(data);
const QString string = QString(QLatin1String(data));
ui.ReceiveWid->appendPlainText(string);
}
}

���ص����ݰ���16λ��ֵΪ�(
非十六进制发送的串接收正常
tcpSocket.bytesAvailable()获取的字符数量正确,
���ص����ݰ���29λ��ֵΪY31X30B3azv1cDA
懂得帮忙给看看,万分感谢!!!!!
https://blog.csdn.net/qq_34359028/article/details/78477148
void My_socket::on_ReadBackText()
{
qint64 DataNum = tcpSocket.bytesAvailable();//获得TCP需要read的字节数
if (DataNum > 0) {
if (ui.HexDisplay->isChecked() == true) {
QByteArray num = tcpSocket.readAll();
QByteArray str1 = num.toHex();
ui.ReceiveWid->appendPlainText(str1);
qDebug("%d,%x", DataNum, tcpSocket.readAll());
}
else {
char data[36] = {NULL};
qint64 num = tcpSocket.read(data, DataNum);//以字符串接收数据
const QString string = QString(QLatin1String(data));
ui.ReceiveWid->appendPlainText(string);
}
}
使用readAll(),直接获取就好了
你把图片发过给我