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

新手求问,在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到最后,然后遍历这个数组就能找到帧头了

http://wenku.baidu.com/link?url=-7tnJDU8f9oQHpcr4G5H8hMMTQxYX86ARzYBD4n_2tSPLO31WHdd5xIyCwvm8zW-eLKgUG8fBO9n9nyHFmMny-kAF1HbukUDvDwvDLePFQm