下面的代码,我已经写出了取同步头,我想请问各位大神根据协议接下来应该怎么做,具体代码是怎么样的,具体协议如下:
测向设备数据接口通信底层采用TCP协议,测向设备作服务端,端口为5021。数据起始为9字节的TCP包数据头,包括4字节同步头0xDCCDBAAB,1字节的数据类型,固定为2,4字节(int型)数据包总长度(不含9字节的数据包包头)。
void SocketWidget::onSocketReadyRead()
{
QByteArray buffer;
qDebug()<<"有数据传输!";
qDebug()<<"bytesAvailable"<bytesAvailable()<<" ";
while (tcpSocket->bytesAvailable()>9)
{
QByteArray ba = tcpSocket->read(9);
char *pChar = ba.data();
int head = *reinterpret_cast(&(pChar[0]));
if (head == 0xDCCDBAAB)
{
qDebug()<<"head == 0xDCCDBAAB";
}
}