组合多个变量以作为udp数据包发送 我需要在C++中通过UDP连接发送一个数据包。我需要发送的第一条消息由两个32位整数和一个64位整数组成。将多个变量类型组合成一个数据块以便通过UDP连接发送的最佳方法是什么?
这取决于您的网络要求。你在乎持久性吗?如果你这样做了,你就不应该只使用任何连续体,而应该使用一个安全的连续体 通常,通过网络发送的每个类/结构都应该有特殊的方法或重载运算符来流式输入和输出它们。最终,您必须使用诸如hton/ntoh之类的宏/函数来处理流基本类型,例如int、int64、float、double等组合多个变量以作为udp数据包发送 我需要在C++中通过UDP连接发送一个数据包。我需要发送的第一条消息由两个32位整数和一个64位整数组成。将多个变量类型组合成一个数据块以便通过UDP连接发送的最佳方法是什么?,c++,variables,udp,C++,Variables,Udp,这取决于您的网络要求。你在乎持久性吗?如果你这样做了,你就不应该只使用任何连续体,而应该使用一个安全的连续体 通常,通过网络发送的每个类/结构都应该有特殊的方法或重载运算符来流式输入和输出它们。最终,您必须使用诸如hton/ntoh之类的宏/函数来处理流基本类型,例如int、int64、float、double等 Upd:另外,如果您的网络端点应用程序在不同的平台/编译器上运行,您可能会有不同大小的int、long、short等。因此,在序列化时,您必须将整数转换为一些预定义类型,并保证在所有支
Upd:另外,如果您的网络端点应用程序在不同的平台/编译器上运行,您可能会有不同大小的int、long、short等。因此,在序列化时,您必须将整数转换为一些预定义类型,并保证在所有支持的平台上大小相同。我用C手工编写了一个DNS解析器,而structs确实是我做这件事的方式。使用位字段指定每个工件的尺寸。有关位字段的详细信息: 确保使用hton/ntoh处理字节顺序。这里有更多信息
事实上,仔细阅读beej的指南——那里有很多有用的信息 我听说
struct
和class
最近很流行。序列化是你的朋友。协议缓冲区、thrift、messagepack等等……那么……我会按顺序创建一个包含变量的类/结构,然后使用类似boost序列化的方法将其转换为二进制消息吗?