如果网络上的所有计算机都使用little-endian,我应该转换为网络字节顺序(hton *)吗?

时间:2019-02-27 17:14:06

标签: c sockets networking network-programming

我正在编写一个客户端服务器应用程序,该应用程序使用UDP在两台Intel x64计算机之间发送数据报。我控制了双方的硬件,并已验证它们使用相同的little-endian架构。

正如我可以确认两台机器都是低端字节序一样,在发送数据之前使用hton*函数更改字节顺序是否有任何好处?当然,这会导致性能略有下降,并且没有任何好处吗?

1 个答案:

答案 0 :(得分:1)

您的协议始终可以以您意想不到的方式使用。例如,该程序可能会被运行在ARM或Sun系统上的某人拾取。

由于通常期望通过网络发送的值是以网络字节顺序排列的,因此最好在发送之前转换您的值。对性能的任何影响都可以忽略不计,可以认为是过早的优化。