使用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 ++库,因为我无法控制服务器。
答案 0 :(得分:0)
我最终发现this post让我找到了解决方案。由于客户端和服务器在同一台机器上,因此不会将双重转换为网络字节顺序。对于UDP,请确保将结构强制转换为char *。