【发布时间】:2016-10-23 19:01:00
【问题描述】:
我是套接字编程的新手,我想出了htons 和htonl 方法的网络字节转换机制。
文档说他们将 16 位或 32 位网络号从主机网络字节顺序转换为互联网字节顺序
那么当主机和网络共享相同的顺序时会发生什么
以及如何确定是否应该使用它们?
提前致意
【问题讨论】:
我是套接字编程的新手,我想出了htons 和htonl 方法的网络字节转换机制。
文档说他们将 16 位或 32 位网络号从主机网络字节顺序转换为互联网字节顺序
那么当主机和网络共享相同的顺序时会发生什么
以及如何确定是否应该使用它们?
提前致意
【问题讨论】:
如果顺序相同,他们可能什么都不做。如果反过来它会交换它。始终将它们用于运输。两端都会明白的
【讨论】:
Network Byte Order 是大端。 hton...() 和 ntoh...() 函数在大端机器上实际上是无操作的,它们在小端机器上交换字节。如果您正在实现的网络协议以网络字节顺序传输数字,则无论平台如何,您都应该始终调用这些函数。这样一来,所有出局的号码都保证从local endian转换为big-endian,所有入局的号码都保证从big-endian转换为local endian。
【讨论】:
endianness?如果是的话,你是怎么做到的,甚至有必要知道