c++ - 提升 Asio 类型以用于 unix-socket 和 tcp 套接字

标签 c++ sockets tcp network-programming boost-asio

我们有一个基于 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/

相关文章:

java - Java 中的简单客户端-服务器应用程序。沟通问题

c# - 从 TCP 套接字接收确认

linux - Linux接收器窗口自动调整部分源代码

c++ - GDI 与 Direct2D

linux - 如何调整 linux 网络缓冲区大小

c# - 使用 recieveFrom 获取多播数据包的源 IP

java - 套接字关闭不抛出 IOException

模板函数的 C++11 奇怪错误

c++ - Main 只接收参数的首字母

c++ - 如何通过模板传递函数?