有 2 个位域结构组合成一个结构。之前在结构整体大小允许的情况下,我在uint64中通过union进行了union。现在结构体的大小变大了,我把它从服务器传到客户端的QByteArray,现在接收和解析出现了问题。
正常人怎么做才对?你还可以举个例子,我会很高兴的!
有 2 个位域结构组合成一个结构。之前在结构整体大小允许的情况下,我在uint64中通过union进行了union。现在结构体的大小变大了,我把它从服务器传到客户端的QByteArray,现在接收和解析出现了问题。
正常人怎么做才对?你还可以举个例子,我会很高兴的!
例如,这是我安排结构的方式:
在哪里
然后在通过网络接收的消息中,我找到结构数据开始的位置,并使用 memcpy 将等于其大小的字节数复制到结构中。
首先,您需要将网络 API 连接到 .pro 项目文件,操作如下。
并立即将库连接到项目
让我们从传输开始。在课堂上的某个地方,您正在创建一个新套接字。
我们在要放置消息的类中创建一个结构。
结构:
接下来,您将位域转换为 QByteArray,如下所示。
将bit域编码进去后,
QByteArray就可以发送我们的消息了,在这个网站上可以看到更详细的例子,不过最好参考Qt官方文档。至此,您可以完成发送。让我们开始阅读我们的消息,为了让我们的程序接受我们的消息,我们需要
QObject::connect用一个信号来创建它以进入数据缓冲区。从缓冲区读取和解码数据:
就是这样,数据被放入
QByteArray并通过 发送udp,另一方面,它被接收并解码回位字段。