9

J'ai une application que je souhaite utiliser sur Windows. J'utilise AF_UNIX famille un windows. Je souhaite savoir que la famille AF_UNIX est disponible dans windows. Si ce n'est pas le cas, y a-t-il une alternative à AF_UNIX?AF_UNIX dans Windows

Merci Arpit

+2

Je ne suis pas sûr à 100% à quoi sert AF_UNIX, mais si c'est pour des communications interprocess, Windows peut faire des communications interprocess efficaces en utilisant des sockets AF_INET liés à localhost. Dans ce cas, Windows détecte que le socket pointe vers un autre processus local et raccourcit la pile des communications, en utilisant LRPC pour effectuer le transfert de données (qui utilise des fichiers mappés en mémoire pour un déplacement de la mémoire tampon entre les processus). –

+1

En deux mots: tuyaux nommés. – ninjalj

Répondre

9

utilisent seulement les sockets TCP, ils se comportent comme les sockets UNIX. Ou vous pouvez utiliser des tuyaux nommés et utiliser WaitForMultipleObjects() au lieu de select() ou poll(). Les canaux nommés Windows ne sont pas tout à fait comme les canaux nommés dans UNIX. Les canaux nommés Windows sont bidirectionnels et donc plus proches des sockets AF_UNIX que les canaux nommés dans UNIX.

0

Windows ne prend pas en charge les sockets de domaine Unix et ne fournit pas non plus une bonne alternative utilisant l'API socket. Vous devez utiliser les sockets TCP sous Windows - lier le serveur à localhost si vous voulez quelque chose de similaire aux sockets AF_UNIX. En fonction de votre problème, le coût de TCP est négligeable.