是否有人知道MAC OS X的NETLINK套接字API的等效内容? 我正在尝试将Linux应用程序移植到MAC OS X,我在MACOS中找不到类似的东西。
我需要在我的应用程序中提供对网络适配器的异步访问。
每隔一定的秒数轮询网络适配器的配置更改等对我来说不方便。 NETLINK Socket API游戏只有当有趣的事情发生时才接收通知。
我知道NETLINK是Linux内核和用户空间之间进行通信的特定事情,但也许在MACOS下存在类似NETLINK的东西。
我看到了与kernel - sysctl()
进行通信的唯一工具有人有任何信息吗?
答案 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不会进行轮询。