c++ - 使用 boost 的 C++ 中的 TCP 和 UDP 客户端 + 服务器

标签 c++ boost tcp server udp

我想实现一个同时支持 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/

相关文章:

c++ - 在 Xcode 中链接库

c++ - 如何将像素转换为索引

c++ - boost 单例

sockets - 旧 TCP 连接的数据是否有可能潜入同一端口上的新 TCP 连接

C#如何连接公网ip

c++ - 如何使用 goto 跳转到 for 循环的末尾,但不离开它

c++ - 为什么 boost::shared_ptr 中的引用计数器不是易变的?

c++ - 显式删除 shared_ptr

python - 更改已运行的服务器的套接字端口(python)

c++ - 使运算符重载上下文特定