何时以及如何使用 C++ htonl 函数
When and how to use C++ htonl function
cout << "Hello World !" << endl;
对于我在堆栈上的第一个 post溢出:我们什么时候应该使用 htonl
函数?我已经浏览了手册页。但是,我不太明白何时以及如何使用它。
Host TO N网络翻译。它确保 32 位数据值的 endian 对于网络传输是正确的(大端)。 ntohl
-- Network TO Host -- 被接收器用来确保字节顺序对于接收方的 CPU 是正确的。
留意用于处理 16 位的 htons
和 ntohs
,并且在某些地方可能有用于 64 位的 htonll
和 ntohll
。
使用所有这些都非常简单,只需传入您要转换的数字,然后输出转换后的数字。您可能会发现在某些处理器上完全没有发生任何事情,因为它们的字节序已经很大。
uint32_t inval = 0xAABBCCDD;
uint32_t outval = htonl(inval);
在大多数桌面硬件上,会导致 outval 被设置为 0xDDCCBBAA
cout << "Hello World !" << endl;
对于我在堆栈上的第一个 post溢出:我们什么时候应该使用 htonl
函数?我已经浏览了手册页。但是,我不太明白何时以及如何使用它。
Host TO N网络翻译。它确保 32 位数据值的 endian 对于网络传输是正确的(大端)。 ntohl
-- Network TO Host -- 被接收器用来确保字节顺序对于接收方的 CPU 是正确的。
留意用于处理 16 位的 htons
和 ntohs
,并且在某些地方可能有用于 64 位的 htonll
和 ntohll
。
使用所有这些都非常简单,只需传入您要转换的数字,然后输出转换后的数字。您可能会发现在某些处理器上完全没有发生任何事情,因为它们的字节序已经很大。
uint32_t inval = 0xAABBCCDD;
uint32_t outval = htonl(inval);
在大多数桌面硬件上,会导致 outval 被设置为 0xDDCCBBAA