我正在尝试理解 IN_ADDR 中的 S_un 。这是当我的 IP 为 127.0.0.1 时的输出:
有关类型的信息:
S_un_b
An IPv4 address formatted as four u_chars.
S_un_w
An IPv4 address formatted as two u_shorts.
S_addr
An IPv4 address formatted as a u_long.
我无法理解 S_un_w 和 S_addr 是如何构建的。 S_un_b 是逻辑,我的 IP 地址中的每个八位字节都转换为无符号字符。但是 2 个未签名的短裤和未签名的长版本怎么样?或者他们只是在这些变量中memcopy了127001?
最佳答案
它只是一个并集,因此它以三种不同的表示形式显示相同的数据。另一种查看方法是将 4 字节整数 (S_addr) 查看为十六进制值(并记住 0x7f = 127):
16777343 = 0x100007F ==> 01 | 00 | 00 | 7f
它是小端格式。
关于c++ - 套接字,理解IN_ADDR中的S_un,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14242681/