新手求问,在QT中我用UDP进行收数,接收的是16进制,发端发送的是一组类似于FF 01 0B 11 22 33的帧,通过udp_socket_rx->readDatagram(datagram.data(),datagram.size());这个函数接收到的datagram直接打印出来是ASCII码的形式的字符串,我想在接收端队帧进行操作,比如寻找帧头0XFF然后再对后面的帧进行操作,这个寻找的判断该如何用代码表示
就是假设判断的语句是if(temp[0]==0xFF) 这个temp[0]应该是如何通过datagram转换过来的呢?
datagram 类型是 QByteArray ,可以转化为各种数据类型,具体可以参考 转化方法的源码实现
你可以定义个static QByteArray,每收到一个字节就append到最后,然后遍历这个数组就能找到帧头了