我是套接字编程的新手,我提出了这个网络字节转换机制htons和htonl方法。这些文档说,它们将16位或32位网络号从主机网络字节顺序转换为Internet字节顺序。当主机和网络共享相同的顺序时会发生什么?你如何决定你是否应该使用它们?
htons
htonl
vcirk6k61#
如果顺序相同,他们可能什么也不做。如果顺序相反,他们会交换它。始终使用它们进行传输。两端都会理解
shyt4zoc2#
网络字节顺序是big-endian。hton...()和ntoh...()函数在big-endian机器上实际上是无操作的,它们在little-endian机器上交换字节。如果您正在实现的网络协议以网络字节顺序传输数字,则无论平台如何,都应始终调用这些函数。这样,所有传出的数字都能保证从本地字节顺序转换为big-endian。并且保证所有输入号码从大端字节序转换为本地字节序。
hton...()
ntoh...()
2条答案
按热度按时间vcirk6k61#
如果顺序相同,他们可能什么也不做。如果顺序相反,他们会交换它。始终使用它们进行传输。两端都会理解
shyt4zoc2#
网络字节顺序是big-endian。
hton...()
和ntoh...()
函数在big-endian机器上实际上是无操作的,它们在little-endian机器上交换字节。如果您正在实现的网络协议以网络字节顺序传输数字,则无论平台如何,都应始终调用这些函数。这样,所有传出的数字都能保证从本地字节顺序转换为big-endian。并且保证所有输入号码从大端字节序转换为本地字节序。