有人知道Mac OS X的NetLink插座API等效吗?我正在尝试将Linux应用程序移植到Mac OS X,但在MacOS中找不到类似的内容。

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

关于配置更改等的投票网络适配器对我来说并不是方便的解决方案。 Netlink插座API游戏只有在发生有趣的事情时才收到通知的方式。

我知道NetLink是Linux特定的东西,可以在Linux内核和用户空间之间进行通信,但是也许MacOS下的Netlink类似于NetLink。

我看到与内核交流的唯一工具 - sysctl()

有人有任何信息吗?

有帮助吗?

解决方案

您可以使用 内核控制体系结构 在其文档的NKE部分中记录了OSX出于此原因提供的文档。

其他提示

传统的方法是使用Select/Poll/Epoll/Kqueue等待插座上的事件。请参阅此答案,以了解哪个平台上最好的内容: 选择VS民意调查与Epoll.

或者,为每个连接产生一个新线程,并使用阻止套接字读取。不过,历史告诉我们,通过SELECT/COLL/KQUEUE,这比非障碍I/O的可扩展性不那么可扩展。这是大多数人最初在1990年代撰写网络服务器的方式。根据您的编码样式,阻止I/O +线程可能更容易使用。

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top