我想实现一个支持TCP / UDP协议的客户端+服务器。我们的想法是,同一个程序将在两台机器上运行,并且它们应该能够相互通信。传统的做法是为客户端创建一个类,为服务器创建一个类(对于每个协议 - 因此总共有4个类)并在main中实例化客户端对象和服务器对象?或者,创建一个实现客户端和服务器功能的类是一种很好的设计实践。什么是普遍接受的做法。boost examples显示了为每个客户端和服务器实现的一个类。
答案 0 :(得分:1)
TCP / UDP协议可以由另一组类抽象(可以称为Channel,Stream,Protocol等)。然后你有Client类和Server类,每个都可以使用TcpChannel和UdpChannel(或两者都在运行时选择它们)。这就是我看到这个实现的方式。然后,Channel可以提供服务器和客户端使用的读取和写入方法。