如果网络上的所有机器都使用 little-endian,我是否应该转换为网络字节顺序 (hton*)?
Should I convert to network byte order (hton*) if all machines on the network use little-endian?
我正在编写一个客户端-服务器应用程序,它使用 UDP 在两台 Intel x64 计算机之间发送数据报。我控制了双方的硬件,并验证了它们使用相同的小端架构。
我可以确认两台机器都是小端,在发送数据之前使用 hton*
函数更改字节顺序有什么好处吗?这肯定会造成非常轻微的性能下降并且没有任何好处吗?
您的协议总是可以以您意想不到的方式使用。例如,该程序可能会被某个 运行 在 ARM 或 Sun 系统上使用。
由于通过网络发送的值通常应按网络字节顺序排列,因此最好在发送前转换您的值。对性能的任何影响都可以忽略不计,并将被视为过早优化。
我正在编写一个客户端-服务器应用程序,它使用 UDP 在两台 Intel x64 计算机之间发送数据报。我控制了双方的硬件,并验证了它们使用相同的小端架构。
我可以确认两台机器都是小端,在发送数据之前使用 hton*
函数更改字节顺序有什么好处吗?这肯定会造成非常轻微的性能下降并且没有任何好处吗?
您的协议总是可以以您意想不到的方式使用。例如,该程序可能会被某个 运行 在 ARM 或 Sun 系统上使用。
由于通过网络发送的值通常应按网络字节顺序排列,因此最好在发送前转换您的值。对性能的任何影响都可以忽略不计,并将被视为过早优化。