【问题标题】:QUdpSocket : I'm receiving a struct, how do I use it?QUdpSocket :我正在接收一个结构,我该如何使用它?
【发布时间】:2016-05-25 12:48:10
【问题描述】:

通过 QUdpSocket,我知道我将收到仅包含此结构的数据:

typedef struct myStruct
    {
       int nb_trame;
       std::vector<bool> vBool;
    } myStruct;

但是当我收到新数据时,我会收到一个 QByteArray 对吗? 那么如何使用接收到的结构呢?

【问题讨论】:

  • 这取决于这个结构在发送给你之​​前是如何序列化的。
  • @tty6 就这样发送:MyStruct data; viaUdp-&gt;write( (const char*) &amp;data, sizeof (data));

标签: c++ networking struct qudpsocket


【解决方案1】:

您不能对向量进行实体序列化(您发送结构的方式称为实体序列化)。我的意思是,你可以序列化它,但是如果你试图以这种方式反序列化它,你将不会得到一个有效的对象。

您需要实现正确的序列化。

【讨论】:

  • 所以如果我使用bool myTab[20] 代替我的向量,会很好吗?
  • @BastienNicolau,实体序列化是不受欢迎的,这是理所当然的。在您的宠物项目中可以,但在生产应用程序中通常没有位置。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-23
  • 2012-11-08
  • 2022-11-07
  • 1970-01-01
  • 2022-09-30
相关资源
最近更新 更多