C ++如何将整数和浮点数据类型编组为字节串?

时间:2015-02-10 03:36:44

标签: c++ sockets unix serialization marshalling

使用C ++进行套接字编程,我想找到一种方法将一系列数据类型编组成一串字节,通过使用UDP的套接字通过网络发送。

这是方法标题

char * Message::marshal( int &n)

我需要编组的一系列数据类型是:

int int int int float  //need to be all marshaled into the same byte string

长度保存为n,字符串以字符数组形式返回。我也想知道如何解组那个字节串。

我正在处理的服务器很可能没有boost库,并且可能没有更新到C ++ 11.我所在的最后一台服务器没有,所以我假设它们没有更新他们呢。

我看到的一种序列化方法是使用流,但我看到了一些关于不可移植性的东西(我在windows中编写源代码,然后我将为unix更改一些内容并在unix服务器上编译它)

我需要使用标准的C ++库,因为我无法控制服务器。

1 个答案:

答案 0 :(得分:0)

我最终发现this post让我找到了解决方案。由于客户端和服务器在同一台机器上,因此不会将双重转换为网络字节顺序。对于UDP,请确保将结构强制转换为char *。