Domanda

Qualcuno sa equivalente per NETLINK Sockets API per MAC OS X? Sto cercando di porto applicazioni Linux a Mac OS X e non sono riuscito a trovare qualcosa di simile in MacOS.

ho bisogno di fornire l'accesso asincrono alla scheda di rete nella mia applicazione.

scheda di rete Polling su modifiche di configurazione, ecc ogni certo numero di secondi non è conveniente soluzione per me. NETLINK Socket gioco API mi modo per ricevere una notifica solo quando qualcosa di interessante è successo.

So che NETLINK è Linux specifica cosa per comunicare tra Linux kernel e user space, ma forse c'è esiste qualcosa come NETLINK sotto MacOS.

vedo il l'unico strumento per comunicare con il kernel - sysctl ()

Qualcuno ha qualche info?

È stato utile?

Soluzione

È possibile utilizzare la controllo kernel architettura documentata nella sezione NKE dei documenti che OSX prevede per questo motivo.

Altri suggerimenti

Il modo tradizionale di fare questo è quello di aspettare che gli eventi sul socket utilizzando select / poll / epoll / kqueue. Vedere questa risposta per quello che è meglio su quale piattaforma: selezionare vs sondaggio vs epoll <. / p>

In alternativa, generare un nuovo thread per ogni connessione e l'utilizzo presa bloccando legge. Anche se, la storia ci ha insegnato che questo è meno scalabile rispetto ai non-blocking I / O tramite selezionare / poll / kqueue. Questo è stato il modo in cui la maggior parte delle persone originariamente scritto i server di rete nel 1990. A seconda del vostro stile di codifica, il blocco di I / O + discussioni può essere più facile da lavorare.

Nota che, contrariamente al suo nome, non è epoll polling.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top