C++ 和设计一个 OO 类

标签 c++ oop boost

<分区>

我对 C++ 相当陌生,尤其是面向对象的类设计。 我想设计一个支持以下内容的路由器类:

我在下面寻求指导的主要领域是如何设计类和 Router 类方法,以 boost 在主机和客户端之间建立链接的方式分离主机和监听器线程。宿主类和客户端类将有自己的写方法。

目前我有一个主机类、客户端类和一个客户端监听器类。 主机将在自己的线程上运行并拥有唯一的套接字。 客户端监听器将在其自己的线程上运行,并在客户端连接时启动客户端类的实例,每个实例都有自己的套接字。客户端监听线程只会在主机线程连接后启动。

从主机收到的任何消息都将: 1)路由到所有客户端 2) 根据消息中的关键信息路由到特定的客户端。将维护套接字表的 key 。

从客户端收到的任何消息都将无条件地路由(写入)主机套接字。第二阶段将实现对多个主机的支持,并使用相应的方案处理路由到哪个主机。此外,我正在使用 boost::asio 进行通信。

如有任何帮助,我们将不胜感激。如果这对你们中的一些人来说太初级了,请 对不起。 谢谢

最佳答案

您似乎可以使用一个名为 HostToClientMapper 的类,它将维护映射以获取主机的所有客户端,反之亦然。此类可以是 Router 的成员。然后 Router 将拥有进行映射所需的一切。

关于C++ 和设计一个 OO 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8028945/

相关文章:

c++ - 搜索继承另一个类的 C++ 类

c++ - 最大矩阵成本路径,

c++ - 使用具有多态性的默认构造函数是否正确?

javascript - Mootools 类到 Jquery

c++ - 为什么 boost::qi 规则的属性必须用括号声明?

c++ - 使用 Boost 解析后在 JSON 文件中查找重复项

c++ - 遍历字符串 C++

c++ - 共享指针上的原子操作,C++ 版本

c++ - 这是编写我的工厂方法的最佳方式吗

c++ - 如何定义和使用 boost::function with "optional arguments"?