【发布时间】:2015-03-06 18:29:02
【问题描述】:
背景:
在服务器上运行的 C++ 程序并在协议缓冲区文件中输出网络数据。数据包含 ip 地址和端口等内容。ip 和端口在文件中保存为 uint32 值。 C++ 程序运行在带有 intel 处理器的 linux 服务器上
我有一个 C# 应用程序,它读取这个文件并使用数据进行分析。 C# 应用程序在带有英特尔处理器的 Windows 7 机器上运行。我正在使用 Jon Skeet 的 protobuf-csharp-port 来读取 C# 中的 protobuf。
在读取数据时,我看到 ip 和 port 值的字节顺序是大端,我需要在我的应用程序中使用它之前将其反转。
问题:
即使机器处理器是 intel(我搜索的使用小端格式),协议缓冲区是否以大端格式输出值?
有什么方法可以在将数据保存到文件时强制字节顺序为小端,以便在读取时节省处理?
【问题讨论】:
-
network order is defined to be big endian,所以它很可能总是以大端序传输数据。
标签: c# protocol-buffers