似乎boost::asio
为每个协议定义了一个单独的终结点类,如果您想在特定终结点上同时执行UDP和TCP操作(必须从一个转换为另一个),这会很烦人。我一直只是将端点视为IP地址(v4或v6)和端口号,而不考虑TCP或UDP。
是否存在明显的差异来证明单独的类合理? (即tcp::socket
和udp::socket
都不能接受类似ip::endpoint
的内容吗?)
套接字的创建方式不同
TCP和UDP端口不同。例如,两个独立的程序都可以在一个端口上侦听,只要一个使用TCP,另一个使用UDP。这就是端点类不同的原因。