将从C ++接收的UDP数据包解码为qt代码

时间:2018-01-19 06:00:45

标签: c++ qt

我无法解码从udp socket接收的数据包, 如何解码从c ++发送到qt udp socket的嵌套结构

我有结构喜欢这个

 struct stCardInfo
{
    unsigned short nsCardType;
    unsigned short nsNoOfSignals;
    unsigned short nsStatus;
};

struct stErrorInfo
{
    unsigned short nsErrorType;
    char ErrorInfo[8];
};
struct stInitHealthCheck
{
    unsigned short nsNoOfCards;
    unsigned short nsCardType;
    QVector<stCardInfo*> lsCardInfo;
    QVector<stErrorInfo*> lsErrorInfo;
};

我需要将bytearray数据转换为嵌套结构

1 个答案:

答案 0 :(得分:1)

当您从Qt UDP套接字读取时,这意味着您正在从应用程序级别进行读取。您可以使用QUdpSocket::readDatagram函数来获取消息。要解释消息,您需要知道格式。如果您不确定数据的确切发送方式,可以尝试使用wireshark来获取数据发送方式的内部视图。然后你可以做必要的解析并继续。

注意QUdpSocket::readDatagram将数据返回为char *。有关详细信息,请参阅Qt文档。