现在我遇到了一个麻烦:我的网络链接用于内核和用户空间通信。当我只启动用户空间的 netlink 套接字时,它会给我一个错误:
proctol not supported
我的源代码是:
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模型。你同意我的看法吗?
最佳答案
对于这个问题,我尝试了很多方法进行测试,现在我有一个结论:当我们使用netlink进行内核与用户空间的通信时,必须先在内核中创建netlink并启动成功,用户空间的netlink socket只能创造成功。所以只有做到以上几点,沟通才能取得成功。
关于c - netlink 套接字是客户端/服务器模式吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27613713/