使用 python 和 C# 的客户端服务器架构

Posted

技术标签:

【中文标题】使用 python 和 C# 的客户端服务器架构【英文标题】:Client Server architecture using python and C# 【发布时间】:2017-09-06 16:20:47 【问题描述】:

我正在尝试一个应用程序来编写一个我使用了客户端/服务器架构的应用程序。客户端使用 .NET\C# 开发,服务器端使用 python 开发。为了使双方通信,我使用了第一个 tcp/ip 套接字;所以我把我的python方法放在一个循环上,然后我每次都从我的c#应用程序中询问运行一个方法。这个想法非常糟糕,因为它需要涵盖所有可能在网络上发生的用例或类似的东西。经过一番搜索,我发现了三种可以回答客户端/服务器架构的技术,它们是 RPC、RMI 和 WCF。 RMI 是一个面向 java 的解决方案,因此被拒绝。所以,我的问题是:RPC 和 WCF 是否支持多种编程语言(互操作性),尤其是在 C# 和 python 之间?

【问题讨论】:

【参考方案1】:

我不确定我是否完全理解您的用例,但如果您需要让 .Net 与 Python 对话,我建议您看看 REST API 方法,反之亦然。

【讨论】:

相对于 WCF 和 RPC,rest API b 对我有什么用处? 简单,真的。如果您的 Python 应用程序可以通过 HTTP 提供数据 (JSON/XML),那么您的 C# 客户端应用程序可以使用它。同样,您的 C# 应用程序可以将数据发布到 Python API 以添加/更新等。您尝试做的事情可能需要比这更复杂的东西,但这是我在查看 WCF 等之前要开始的地方。这就是世界似乎转向微服务等【参考方案2】:

另一种方法是使用Pyro4 在您的Python 服务器端公开Python 对象,并通过Pyrolite 提供的C# 客户端库与它们通信。这主要隐藏了任何特定于网络的编程细节。

【讨论】:

以上是关于使用 python 和 C# 的客户端服务器架构的主要内容,如果未能解决你的问题,请参考以下文章

Python3网络编程—socket

python服务器和C#客户端之间的通信(Unity)

BS架构和CS架构

架构师修炼之设计模式 - 策略模式(Strategy) Python与C#实现

使用 Scut 搭建通服架构

MySQL逻辑架构简介