套接字,了解IN_ADDR中的S_un

时间:2013-01-09 17:13:25

标签: c++ sockets

我正试图在IN_ADDR中理解S_un。这是我的IP为127.0.0.1时的输出:

Output

有关类型的信息:

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地址中的每个八位字节都转换为unsigned char。但是2个不带状态的短裤和未签名的长版如何?或者他们只是在这些变量中记录了127001?

1 个答案:

答案 0 :(得分:3)

它只是一个联合,因此它以三种不同的表示方式显示相同的数据。另一种看待它的方法是将4字节整数(S_addr)视为十六进制值(并记住0x7f = 127):

16777343 = 0x100007F  ==> 01 | 00 | 00 | 7f

它采用小端格式。