9

Ho un'applicazione che desidero utilizzare su Windows. Sto usando AF_UNIX family un windows. Vorrei sapere che la famiglia AF_UNIX è disponibile in Windows. Se no allora c'è qualche alternativa a AF_UNIX?AF_UNIX in windows

Grazie Arpit

+2

Non sono sicuro al 100% a cosa serve AF_UNIX, ma se è per le comunicazioni tra interprocessi, Windows può eseguire comunicazioni interprocesso efficienti utilizzando i socket AF_INET associati a localhost. In questo caso, Windows rileva che il socket punta a un altro processo locale e collega lo stack delle comunicazioni, utilizzando LRPC per eseguire il trasferimento dei dati (che utilizza i file mappati in memoria per uno spostamento zero della copia del buffer tra i processi). –

+1

In due parole: named pipe. – ninjalj

risposta

9

Basta usare i socket TCP, si comportano molto come socket UNIX.

Oppure è possibile utilizzare pipe denominate e utilizzare WaitForMultipleObjects() anziché select() o poll(). Le pipe denominate Windows non sono proprio come named pipe in UNIX. I pipe con nome Windows sono bidirezionali e quindi sono più come socket AF_UNIX che named pipe in UNIX.

0

Windows non supporta socket di dominio Unix, né fornisce una valida alternativa che utilizza l'API socket. Dovresti usare i socket TCP su Windows - collegare il server a localhost se vuoi qualcosa di simile ai socket AF_UNIX. A seconda del problema, il sovraccarico di TCP è trascurabile.