用于unix套接字和tcp套接字的Boost Asio类型是什么?

4
我们有一个基于boost asio的网络代码,它连接到远程一侧。 本地端可以是tcp4 socket或unix socket。
是否有一种类型名称可用于保存这两种类型的boost sockets?(例如,两者的基类)。 目前我们的代码使用 boost::asio::generic::stream_protocol::socket 作为tcp socket,并且 boost::asio::local::stream_protocol::socket 作为unix socket。
1个回答

7

事实上,对于tcp套接字,有一个专门的ip::tcp::socket类型。generic::stream_protocol::socket是通用流套接字类型,可以在运行时接受套接字协议和族,因此你可以将其用于你需要的两种类型:

generic::stream_protocol::socket ipc(io_, generic::stream_protocol(AF_UNIX, 0));
generic::stream_protocol::socket tcp(io_, generic::stream_protocol(AF_INET, IPPROTO_TCP));

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接