是否有设计模式可以用来在 C++ 中实现 RPC(客户端-服务器)?

发布于 2024-09-30 06:57:18 字数 321 浏览 3 评论 0原文

我正在开发一个个人项目,它是 C++ 中的 RPC(客户端-服务器)。 RPC 将通过 TCP/IP 或 HTTP 进行通信。 RPC 的规范在这里:

http://groups .google.com/group/json-rpc/web/json-rpc-2-0

我想知道是否存在现有的设计模式(或模式组合)可以帮助我生成一个干净的和灵活的设计。如果有代码示例、UML 图或文章,我将不胜感激。

谢谢。

I'm working on a personal project which is an RPC (client-server) in C++. The RPC will communicate over TCP/IP or HTTP. The spec of the RPC is here :

http://groups.google.com/group/json-rpc/web/json-rpc-2-0

I'm wondering if there is an existing design pattern (or a combination of pattern) that could help me to produce a clean and flexible design. I will appreciate to have code examples, UML diagrams, or articles.

Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

困倦 2024-10-07 06:57:19

我会选择《观察家》。

详细信息和图表。

I would go for Observer.

Details and diagrams.

酸甜透明夹心 2024-10-07 06:57:19

目前尚不清楚您询问的是高级设计(观察者模式、JSON/XML 处理技术等)、低级设计(套接字、HTTP 客户端/服务器处理等)还是两者兼而有之。

如果对包括可扩展性在内的较低级别方面感兴趣,可能值得研究 ASIO 背后的设计和动机:http://think-async.com/Asio/asio-1.3.1/doc/asio/overview.html

It's not clear if you asking in regards to high level design (observer patterns, JSON/XML processing techniques, etc.), low level design (sockets, HTTP client/server handling, etc.), or both.

If interested in lower level aspects including scalability, it might be worthwhile to study the design and motivations behind ASIO: http://think-async.com/Asio/asio-1.3.1/doc/asio/overview.html .

春庭雪 2024-10-07 06:57:18

您可能需要客户端上的 代理 来代表任何服务器端并使其可在本地调用您将调用的方法。

在幕后,抽象工厂可用于封装使用选择的具体网络连接的提供配置或请求的协议(TCP、HTTP)。

You are probably going to need a Proxy on the client to represent and make callable locally any server-side methods that you will be calling.

Under the covers, Abstract Factory could be useful to encapsulate provision of a concrete network connection that is selected using a configured or requested protocol (TCP, HTTP).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文