netlink socket是客户端/服务器模式吗?

时间:2014-12-23 03:35:18

标签: c linux netlink

现在我遇到了麻烦:我的netlink用于内核和用户空间通信。当我只启动用户空间的netlink套接字时,它会给我一个错误:

  

不支持proctol

我的源代码是:

if((sk_fd = socket(PF_NETLINK, SOCK_RAW, netlink_id)) == -1)
    {
        printf("socket error:%s\n", strerror(errno));
        return false;
    }

netlink_id是1567.但是当我提前启动内核netlink时,它会运行良好。 所以我认为netlink是一个c / s模型。你同意我的意见吗?

1 个答案:

答案 0 :(得分:2)

对于这个问题,我尝试了很多方法进行测试。现在我得出一个结论:当我们使用netlink进行内核和用户空间之间的通信时,你必须首先在内核中创建netlink并开始成功,netlink用户空间中的套接字只能创造成功。所以沟通只有在你做得好的时候才能取得成功。