QT中 QByteArray数据转自定义结构体(含成员指针)能强转吗

QT中 UDP接收数据用的QByteArray,然后需要将QByteArray数据转换成自定义结构体数据(含成员指针),能进行强制转换吗?

结构体中有指针的话不能直接强转,需要自己写个解析函数,按照报文格式,逐个字段解析出来放到结构体中。

题外话:

如果结构体中没有指针,如果在发送端发送的时候,直接用结构体取地址的方式发送,那么在接收端就可以直接转,否则就不能直接强转。
假设有结构体:

struct StData
{
int a;
int b;
};
struct StData st; 
st.a = 1;
st.b = 2;

如果再发送端发送的时候,使用的方式是
writeDatagram(&st,QHostAddress::LocalHost,6000);
这种形式,那么在接收端,收到数据后,可以直接把接收到的数据强转为结构体。(只有这种情况下才能直接强转)
否则,就不能直接强转。

如有帮助,请点击我的回答下方的“采纳该答案”帮忙采纳一下,谢谢。

img

你能用UDP传指针?你应该按你的通信协议来转换数据

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632