求问Qt中如何对通过UDP的ReadDatagram()函数收到的帧进行操作 20C

新手求问,在QT中我用UDP进行收数,接收的是16进制,发端发送的是一组类似于FF 01 0B 11 22 33的帧,通过udp_socket_rx->readDatagram(datagram.data(),datagram.size());这个函数接收到的datagram直接打印出来是ASCII码的形式的字符串,我想在接收端队帧进行操作,比如寻找帧头0XFF然后再对后面的帧进行操作,这个寻找的判断该如何用代码表示

4个回答

就是假设判断的语句是if(temp[0]==0xFF) 这个temp[0]应该是如何通过datagram转换过来的呢?

datagram 类型是 QByteArray ,可以转化为各种数据类型,具体可以参考 转化方法的源码实现

你可以定义个static QByteArray,每收到一个字节就append到最后,然后遍历这个数组就能找到帧头了

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问