Windows 中的 AF_UNIX

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/3872558/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-15 15:22:37  来源:igfitidea点击:

AF_UNIX in windows

linuxwindowslinux-kernelnetwork-programmingwindows-networking

提问by Arpit

I have an application that I wish to use over windows. I am using AF_UNIX family un windows. I wish to know that AF_UNIX family is available in windows. If not then is there any alternate to AF_UNIX ?

我有一个希望在 Windows 上使用的应用程序。我正在使用 AF_UNIX 系列 un windows。我想知道 AF_UNIX 系列在 windows 中可用。如果没有,那么有没有替代 AF_UNIX 的方法?

Thanks Arpit

谢谢阿皮特

回答by Prof. Falken contract breached

Edit: since about 2018, Windows 10 supports AF_UNIX.

编辑:大约从 2018 年开始,Windows 10 支持 AF_UNIX。

https://devblogs.microsoft.com/commandline/af_unix-comes-to-windows/

https://devblogs.microsoft.com/commandline/af_unix-comes-to-windows/

Old answer:

旧答案:

Just use TCP sockets, they behave very much like UNIX sockets.

只需使用 TCP 套接字,它们的行为与 UNIX 套接字非常相似。

Or you can use named pipes and use WaitForMultipleObjects()instead of select()or poll(). Windows named pipes are not quite like named pipes in UNIX. Windows named pipes are bi-directional and thus more like AF_UNIX sockets than named pipes in UNIX.

或者您可以使用命名管道并使用WaitForMultipleObjects()代替select()poll()。Windows 命名管道与 UNIX 中的命名管道不太一样。Windows 命名管道是双向的,因此更像 AF_UNIX 套接字而不是 UNIX 中的命名管道。

回答by AndiDog

Windows does not support Unix domain sockets, nor does it provide a good alternative that uses the socket API. You should use TCP sockets on Windows - bind the server to localhost if you want something similar to AF_UNIX sockets. Depending on your problem, the overhead of TCP is negligible.

Windows 不支持 Unix 域套接字,也没有提供使用套接字 API 的良好替代方案。您应该在 Windows 上使用 TCP 套接字 - 如果您想要类似于 AF_UNIX 套接字的内容,请将服务器绑定到本地主机。根据您的问题,TCP 的开销可以忽略不计。