我想实现一个同时支持 TCP/UDP 协议(protocol)的客户端 + 服务器。这个想法是同一个程序将在两台机器上运行,并且它们应该能够相互通信。传统上为客户端创建一个类,为服务器创建一个类(对于每个协议(protocol) - 因此总共有 4 个类)并在主体中实例化一个客户端对象和服务器对象吗?或者创建一个实现客户端和服务器功能的类是一个好的设计实践。什么是普遍接受的做法。 boost examples显示了为每个客户端和服务器实现的一个类。
最佳答案
TCP/UDP 协议(protocol)可以通过另一组类(可以称为 Channel、Stream、Protocol 等)来抽象。然后您将拥有 Client 类和 Server 类,它们中的每一个都可以使用 TcpChannel 和 UdpChannel 中的任何一个(或两者都使用,并在运行时在它们之间进行选择)。这就是我看到的实现方式。 Channel 然后可以提供服务器和客户端使用的读取和写入方法。
关于c++ - 使用 boost 的 C++ 中的 TCP 和 UDP 客户端 + 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35490557/