Macos 有人知道适用于MAC OS X的NETLINK Sockets API的等价物吗?

Macos 有人知道适用于MAC OS X的NETLINK Sockets API的等价物吗?,macos,sockets,kernel,netlink,sysctl,Macos,Sockets,Kernel,Netlink,Sysctl,有人知道适用于MAC OS X的NETLINK Sockets API的等价物吗? 我正在尝试将Linux应用程序移植到MacOSX,但在MACOS中找不到类似的东西 我需要在我的应用程序中提供对网络适配器的异步访问 每隔一定的时间轮询网络适配器关于配置更改等信息对我来说不是一个方便的解决方案。 NETLINK Socket API游戏提供了一种仅在发生有趣事件时才接收通知的方法 我知道NETLINK是Linux内核和用户空间之间进行通信的特定于Linux的东西,但在MACOS下可能存在类似NE

有人知道适用于MAC OS X的NETLINK Sockets API的等价物吗? 我正在尝试将Linux应用程序移植到MacOSX,但在MACOS中找不到类似的东西

我需要在我的应用程序中提供对网络适配器的异步访问

每隔一定的时间轮询网络适配器关于配置更改等信息对我来说不是一个方便的解决方案。 NETLINK Socket API游戏提供了一种仅在发生有趣事件时才接收通知的方法

我知道NETLINK是Linux内核和用户空间之间进行通信的特定于Linux的东西,但在MACOS下可能存在类似NETLINK的东西

我看到了与内核通信的唯一工具——sysctl()


有人有什么消息吗

执行此操作的传统方法是使用select/poll/epoll/kqueue等待套接字上的事件。请参阅此答案,以了解在什么平台上最好:

或者,为每个连接生成一个新线程,并使用阻塞套接字读取。尽管如此,历史告诉我们,与通过select/poll/kqueue的非阻塞I/O相比,它的可伸缩性较差。这是20世纪90年代大多数人最初编写网络服务器的方式。根据您的编码风格,阻塞I/O+线程可能更容易使用


请注意,与它的名称相反,epoll不是轮询。

您可以使用OSX为此提供的文档NKE部分中记录的。

我不是说侦听套接字以及从套接字发送和接收数据。我说的是通过使用NETLINK套接字API获取网络适配器设置和配置数据。Netlink是内核和用户空间进程之间,以及单独的用户空间进程(如unix套接字)或多个用户空间和内核空间进程的混合进程之间的IPC套接字式机制。我的调查显示,mac os x没有NETLINK API。我正在寻找某种替代品。P.S.epoll()系统调用在MAC OS X 8-中不存在