小编Kin*_*ing的帖子

recv()和send()会自动转换网络顺序格式的消息吗?

我是套接字编程的新手.我发现在发送消息之前,我们必须将主机字节顺序转换为网络字节顺序.我已经看了很多站点上给出的例子,但是在发送消息之前没有人将消息更改为网络字节顺序.只有在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?这些函数是否自动执行字节顺序转换?

这个问题可能很愚蠢.但请帮助我,我完全糊涂了.

c sockets recv

7
推荐指数
1
解决办法
2605
查看次数

通用netlink中的策略和属性的概念是什么?

我是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结构.我的问题是:

  1. 标题和属性之间有什么关系?请解释"属性".
  2. 什么是政策,需要什么,为什么我们为此使用数组?

我找到了一些关于"它定义属性类型"的政策,
这是什么意思?我的意思是"属性类型的含义是什么?"

这可能是一个无意义的问题,但我完全感到困惑.我一直试图了解这些事情超过三天,请帮助我.

谢谢..

linux kernel module netlink

5
推荐指数
1
解决办法
2384
查看次数

标签 统计

c ×1

kernel ×1

linux ×1

module ×1

netlink ×1

recv ×1

sockets ×1