我是套接字编程的新手.我发现在发送消息之前,我们必须将主机字节顺序转换为网络字节顺序.我已经看了很多站点上给出的例子,但是在发送消息之前没有人将消息更改为网络字节顺序.只有在struct sockaddr_in的变量中设置值时才使用此字节顺序更改(如果是端口号,则为ip地址).
例如: -
sock_addr.sin_port=htons(12000)
Run Code Online (Sandbox Code Playgroud)
要么
sock_addr.sin_addr.s_addr=htonl(INADDR_ANY)
Run Code Online (Sandbox Code Playgroud)
等等
为什么在send()或recv()发送或接收消息的情况下,他们不使用此hton或ntoh?这些函数是否自动执行字节顺序转换?
这个问题可能很愚蠢.但请帮助我,我完全糊涂了.
我是netlink编程新手.我正在编写一个generic netlink用于创建netlink协议族的程序.我在互联网上搜索了很多文档,我发现了一些"属性和策略",就像定义一个netlink家庭一样.
我对这些事情感到很困惑.
我发现了关于属性的轰鸣声 linux/netlink.h
<------- NLA_HDRLEN ------> <-- NLA_ALIGN(payload)-->
+---------------------------+- - -+- - - - - - - - - -+- - -+
| Header | Pad | Payload | Pad |
| (struct nlattr) | ing | | ing |
+---------------------------+- - -+- - - - - - - - - -+- - -+
<-------------------- nlattr->nla_len -------------->
Run Code Online (Sandbox Code Playgroud)
政策是一系列nla_policy结构.我的问题是:
我找到了一些关于"它定义属性类型"的政策,
这是什么意思?我的意思是"属性类型的含义是什么?"
这可能是一个无意义的问题,但我完全感到困惑.我一直试图了解这些事情超过三天,请帮助我.
谢谢..