我有一个希望在 Windows 上使用的应用程序。我正在使用 AF_UNIX 系列 un windows。我想知道 AF_UNIX 系列在 Windows 中可用。如果没有,那么是否有任何替代 AF_UNIX ?
谢谢阿皮特
我有一个希望在 Windows 上使用的应用程序。我正在使用 AF_UNIX 系列 un windows。我想知道 AF_UNIX 系列在 Windows 中可用。如果没有,那么是否有任何替代 AF_UNIX ?
谢谢阿皮特
编辑:大约从 2018 年开始,Windows 10 支持 AF_UNIX。
https://devblogs.microsoft.com/commandline/af_unix-comes-to-windows/
老答案:
只需使用 TCP 套接字,它们的行为非常类似于 UNIX 套接字。
或者您可以使用命名管道并使用WaitForMultipleObjects()
代替select()
or poll()
。Windows 命名管道与 UNIX 中的命名管道不太一样。Windows 命名管道是双向的,因此更像 AF_UNIX 套接字而不是 UNIX 中的命名管道。
自Windows 10 April 2018更新发布以来, Windows 10现在终于支持此功能:
Windows 不支持 Unix 域套接字,也没有提供使用套接字 API 的良好替代方案。您应该在 Windows 上使用 TCP 套接字 - 如果您想要类似于 AF_UNIX 套接字的东西,请将服务器绑定到 localhost。根据您的问题,TCP 的开销可以忽略不计。