我们有一个基于 boost asio 的网络代码,它连接到远程端。 本地端可以是 tcp4 套接字或 unix 套接字。
是否有一个类型名称可以同时容纳这两种类型的升压 socket ? (例如,类似于两者的基类?)。
目前我们的代码使用
boost::asio::generic::stream_protocol::socket
用于 tcp 套接字,以及
boost::asio::local::stream_protocol::socket
用于 unix 套接字。
最佳答案
实际上,有一个专门用于 tcp 套接字的 ip::tcp::socket
类型。
至于generic::stream_protocol::socket
,它是在运行时接受套接字协议(protocol)和系列的通用流套接字类型,因此您可以将它用于您需要的两种类型:
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));
关于c++ - 提升 Asio 类型以用于 unix-socket 和 tcp 套接字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19123980/