我可以在Windows操作系统上使用本地套接字吗? - C ++ / Boost

时间:2013-08-08 17:07:17

标签: c++ windows sockets boost boost-asio

我可以在Windows操作系统上创建boost::asio::local::stream_protocol::socket吗?我知道它应该是一个'UNIX'套接字,但Windows不支持这个吗?

2 个答案:

答案 0 :(得分:3)

如果我理解正确,boost::asio::local::stream_protocol是POSIX特定的。 Windows本身不是符合POSIX标准的环境,但有适用于Windows的POSIX环境,即Cygwin。但是,如果不分发环境,您将无法分发这些应用程序。

在某些情况下,特别是当Unix是您的主要目标平台时,并且您提供的是慷慨的Windows版本,这可能是可以接受的。

否则,您应该考虑绕过明确标记为不可移植的功能的方法。

答案 1 :(得分:2)

在boost文档中,您可以测试BOOST_ASIO_HAS_LOCAL_SOCKETS以确定它们是否在您的本地操作系统上受支持。考虑到Windows不支持AF_UNIX,似乎在您的标准Windows环境下无法使用此定义。