gpt4 book ai didi

c++ - 使用 htonl() 使用 C++ 正确转换本地主机

转载 作者:太空宇宙 更新时间:2023-11-04 14:47:41 24 4
gpt4 key购买 nike

我有如下定义:

#define LOCALHOST            2130706433

在使用 sockaddr_in 时,我正在尝试更正网络/主机字节顺序:

struct sockaddr_in src;
src.sin_port = htons(0);
src.sin_family = AF_INET;
src.sin_addr.s_addr = htonl( LOCALHOST );

如果我将 src.sin_addr.s_addr 打印到标准输出,我看到的是 1.0.0.127,这似乎排序不正确。

这样做的正确方法是什么?

最佳答案

十进制的

2130706433 是十六进制的 0x7f000001,所以这在网络字节顺序中已经是 127.0.0.1。

如果您在 Intel x86 平台上使用 htonl(),由于 x86 是小尾数法,htonl() 最终会反转位。

关于c++ - 使用 htonl() 使用 C++ 正确转换本地主机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39460263/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com