QT中 UDP接收数据用的QByteArray,然后需要将QByteArray数据转换成自定义结构体数据(含成员指针),能进行强制转换吗?
3条回答 默认 最新
- 技术专家团-小桥流水 2022-01-20 18:55关注
结构体中有指针的话不能直接强转,需要自己写个解析函数,按照报文格式,逐个字段解析出来放到结构体中。
题外话:
如果结构体中没有指针,如果在发送端发送的时候,直接用结构体取地址的方式发送,那么在接收端就可以直接转,否则就不能直接强转。
假设有结构体:struct StData { int a; int b; }; struct StData st; st.a = 1; st.b = 2;
如果再发送端发送的时候,使用的方式是
writeDatagram(&st,QHostAddress::LocalHost,6000);
这种形式,那么在接收端,收到数据后,可以直接把接收到的数据强转为结构体。(只有这种情况下才能直接强转)
否则,就不能直接强转。如有帮助,请点击我的回答下方的“采纳该答案”帮忙采纳一下,谢谢。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥50 关于#html5#的问题:H5页面用户手机返回的时候跳转到指定页面例如(语言-javascript)
- ¥15 无法使用此凭据登录,因为你的域不可用,如何解决?(标签-Windows)
- ¥15 yolov9的训练时间
- ¥15 二叉树遍历没有报错但无法正常运行
- ¥15 在linux系统下vscode运行robocup3d上场球员报错
- ¥15 Python语言实验
- ¥15 SAP HANA SQL 增加合计行
- ¥20 用C#语言解决一个英文打字练习器,有偿
- ¥15 srs-sip外部服务 webrtc支持H265格式
- ¥15 在使用abaqus软件中,继承到assembly里的surfaces怎么使用python批量调动