Mac OS XのNetLink Sockets APIに相当する人がいる人はいますか?
質問
Mac OS XのNetLink Sockets APIに相当する人がいる人はいますか?私はLinuxアプリケーションをMac OS Xに移植しようとしていますが、MacOSで同様のものは見つかりませんでした。
アプリケーションでネットワークアダプターへの非同期アクセスを提供する必要があります。
構成の変更などに関するポーリングネットワークアダプターは、一定の秒ごとに便利なソリューションではありません。 NetLink Socket APIゲーム私は、何か面白いことが起こったときだけ通知を受け取る方法です。
NetlinkはLinuxカーネルとユーザースペースの間で通信するLinux固有のものであることを知っていますが、MacOSの下にはNetlinkのようなものが存在する可能性があります。
カーネルと通信する唯一のツール-sysctl()が表示されます
誰かが情報を持っていますか?
解決
使用できます カーネル制御アーキテクチャ これは、OSXがその理由で提供するドキュメントのNKEセクションに文書化されています。
他のヒント
これを行う従来の方法は、Select/Poll/Epoll/Kqueueを使用してソケットのイベントを待つことです。どのプラットフォームで最善かについてこの答えを参照してください: 投票]とEpollを選択します.
または、接続ごとに新しいスレッドを生成し、ブロッキングソケットの読み取りを使用します。しかし、歴史は、これがSelect/Poll/Kqueueを介して非ブロッキングI/Oよりもスケーラブルではないことを教えてくれました。これは、ほとんどの人が1990年代にネットワークサーバーを最初に書いた方法でした。コーディングスタイルに応じて、I/O +スレッドをブロックする方が簡単な場合があります。
その名前に反して、エポールは投票していないことに注意してください。