想用一个TCP/IP通信客户端程序接收激光雷达数据,连接成功,但是收到的是黑色的方块。。
不知道是哪里不对劲,应收到的数据两个相关函数代码,
```void MainWindow::on_pushButton_Send_clicked()
{
qDebug() << "Send: " << ui->textEdit_Send->toPlainText();
//获取文本框内容并以ASCII码形式发送
socket->write(ui->textEdit_Send->toPlainText().toLatin1());
socket->flush();
void MainWindow::socket_Read_Data()
{
QByteArray buffer;
//读取缓冲区数据
buffer = socket->readAll();
if(!buffer.isEmpty())
{
QString str = ui->textEdit_Recv->toPlainText();
str+=tr(buffer);
//刷新显示
ui->textEdit_Recv->setText(str);
}
}
调试下,buffer的内容是什么,是不是ascii文本,中文还是其他不可读数据,或者不同数据的复合体
显示有问题,你需要将接收到的socket中的16进制数据转换成ascii码字符串,才能继续下面的操作,QByteArray buffer的每个字节都要转换,比如
buffer长度为2字节,0xab,0x45,转换成字符串后就是 ab 45 4字符了