9

Ich habe eine Anwendung, die ich über Windows verwenden möchte. Ich verwende AF_UNIX family un windows. Ich möchte wissen, dass die AF_UNIX-Familie in Windows verfügbar ist. Wenn nicht, gibt es dann eine Alternative zu AF_UNIX?AF_UNIX in Windows

Dank Arpit

+2

Ich bin nicht 100% sicher, was AF_UNIX ist, aber wenn es für Interprozess-Comms ist, kann Windows effiziente Interprozess-Comms mit AF_INET-Sockets an localhost gebunden. In diesem Fall erkennt Windows, dass der Socket auf einen anderen lokalen Prozess verweist, und führt den Comms-Stack mit LRPC durch, um den Datentransfer durchzuführen (Dies verwendet Speicherabbilddateien für eine Nullkopieverschiebung des Puffers zwischen Prozessen). –

+1

In zwei Worten: Named Pipes. – ninjalj

Antwort

9

Nur TCP-Sockets verwenden, verhalten sie sich sehr ähnlich wie UNIX-Sockets.

Oder Sie können Named Pipes verwenden und WaitForMultipleObjects() anstelle von select() oder poll() verwenden. Named Pipes von Windows sind in UNIX nicht so wie Named Pipes. Windows Named Pipes sind bidirektional und daher mehr wie AF_UNIX-Sockets als Named Pipes in UNIX.

0

Windows unterstützt keine Unix-Domain-Sockets und bietet auch keine gute Alternative, die die Socket-API verwendet. Sie sollten TCP-Sockets unter Windows verwenden - binden Sie den Server an localhost, wenn Sie etwas Ähnliches wie AF_UNIX-Sockets möchten. Abhängig von Ihrem Problem ist der Overhead von TCP vernachlässigbar.