c++ - 套接字,理解IN_ADDR中的S_un

标签 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 地址中的每个八位字节都转换为无符号字符。但是 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/

相关文章:

java - IP 数据报中有效负载/数据的大小是如何决定的

php - 尝试了所有仍然出现 ERROR 2002 (HY000) : Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) in mac 的事情

c++ - [expr.ref]/1 中提到的脚注到底是什么意思?

c++ - 为什么在这种情况下使用 vector<>.push_back() 时不使用动态内存?

c - 为什么客户端不关闭其套接字?

java - 在 Java 中使用套接字解析和发送 HTTP 请求的正确方法是什么?

javascript - Android 中带回调的 Socket.emit - NodeJS

c++ - 从 const char* 到 int 的无效转换

c++ - 我需要以一种可以从循环中调用构造函数的方式来组织我的类

c++ - winapi - SetLayeredWindowAttributes with LWA_COLORKEY 仅将像素设置为完全不透明或完全透明?