有没有人知道MAC OS X的NETLINK套接字API的等价物?

时间:2010-12-21 11:57:43

标签: macos sockets kernel netlink sysctl

是否有人知道MAC OS X的NETLINK套接字API的等效内容? 我正在尝试将Linux应用程序移植到MAC OS X,我在MACOS中找不到类似的东西。

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

每隔一定的秒数轮询网络适配器的配置更改等对我来说不方便。 NETLINK Socket API游戏只有当有趣的事情发生时才接收通知。

我知道NETLINK是Linux内核和用户空间之间进行通信的特定事情,但也许在MACOS下存在类似NETLINK的东西。

我看到了与kernel - sysctl()

进行通信的唯一工具

有人有任何信息吗?

2 个答案:

答案 0 :(得分:2)

您可以使用OSX提供的文档的NKE部分中记录的kernel control architecture

答案 1 :(得分:-3)

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

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

请注意,与其名称相反,epoll不会进行轮询。