Tag:

在socket上发送struct时序列化问题

我正在开发基于UDP的客户端/服务器我想从服务器向客户端发送不同的消息。 为每条消息定义了不同的C结构。 我想了解我序列化数据的方式有什么问题。 struct Task { int mType; int tType; int cCnt; int* cId; char data[128]; }; 序列化/反序列化function unsigned char * serialize_int(unsigned char *buffer, int value) { buffer[0] = value >> 24; buffer[1] = value >> 16; buffer[2] = value >> 8; buffer[3] = value; return buffer + 4; } unsigned char * serialize_char(unsigned char […]

如何使用msgpack-c正确解压缩和提取数据?

我目前正在尝试在用C编写的项目中使用msgpack。我使用msgpack来序列化结构的内容,然后通过网络发送,然后反序列化为相应的结构。另一边。 我正在尝试做的简明版本: #include #include #include typedef someStruct{ uint32_t a; uint32_t b; float c; } someStruct; int main (void){ someStruct data; /* … Fill ‘data’ with some data for test purposes …*/ msgpack_sbuffer* buff = msgpack_sbuffer_new(); msgpack_packer* pck = msgpack_packer_new(buff, msgpack_sbuffer_write); someStruct* structs = malloc(sizeof(someStruct) * 10); /* … Fill ‘structs’ with members containing test data […]