何时以及如何使用 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 位的 htonsntohs,并且在某些地方可能有用于 64 位的 htonllntohll

使用所有这些都非常简单,只需传入您要转换的数字,然后输出转换后的数字。您可能会发现在某些处理器上完全没有发生任何事情,因为它们的字节序已经很大。

uint32_t inval = 0xAABBCCDD;
uint32_t outval = htonl(inval);

在大多数桌面硬件上,会导致 outval 被设置为 0xDDCCBBAA