Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何从QByteArray获取结构 我在Linux上的TCP通信应用程序,以及在C++ /Qt程序中的Linux < /P> P>通信后,在C++ QByTurRaye中得到C应用程序的数据。 现在需要将QByteArray转换回struct_C#_C++_C_Qt_Qtnetwork - Fatal编程技术网

C# 如何从QByteArray获取结构 我在Linux上的TCP通信应用程序,以及在C++ /Qt程序中的Linux < /P> P>通信后,在C++ QByTurRaye中得到C应用程序的数据。 现在需要将QByteArray转换回struct

C# 如何从QByteArray获取结构 我在Linux上的TCP通信应用程序,以及在C++ /Qt程序中的Linux < /P> P>通信后,在C++ QByTurRaye中得到C应用程序的数据。 现在需要将QByteArray转换回struct,c#,c++,c,qt,qtnetwork,C#,C++,C,Qt,Qtnetwork,如何在QT中获取结构中的数据。 我用过 QDataStream in(&data, QIODevice::ReadOnly); int parID; QString parMessage; in >> parID >>parMessage; 或 QDataStream使用自己的序列化/反序列化格式。看起来您的数据没有使用QDataStream进行序列化。要解决此问题,您可以使用json/xml/等格式发送数据。这取决于数据的发送方式。在正确通信之前,您需要确保两

如何在QT中获取结构中的数据。 我用过

QDataStream in(&data, QIODevice::ReadOnly);
int parID;
QString parMessage;
in >> parID >>parMessage;


QDataStream使用自己的序列化/反序列化格式。看起来您的数据没有使用QDataStream进行序列化。要解决此问题,您可以使用json/xml/等格式发送数据。

这取决于数据的发送方式。在正确通信之前,您需要确保两边的格式

发送字符串是一件棘手的事情。最好的办法是将字符串的长度作为32位非单精度整数发送,然后以utf8格式发送数据,当您读取时,您可以这样做

char* s;
int length;
in.readData(s, length);
QString str = QString::fromUtf8(s, length);
delete[] s;//free the allocated buffer
那不太正确。对于复杂的Qt数据类型,QDataStream当然使用自己的简单格式。对于简单类型,例如数字类型,实际上没有什么太多:您可以选择endianness,这样就可以了。
char* s;
int length;
in.readData(s, length);
QString str = QString::fromUtf8(s, length);
delete[] s;//free the allocated buffer