0

我有点卡在这里。我有一个用 C# .NET 编写的服务器 B,它与我想使用的设备进行通信(例如调试它)。然后是与我的 Eclipse 通信的服务器 A(用 C 编写)。这两件事完全没有问题。

问题从我需要从服务器 A服务器 B进行通信的地方开始。我不能在A中使用B中的 DLL,因为它们是在 .NET Framework 2.0 下编写的,并且在 C 代码中使用这些 DLL 似乎相当复杂。

我的问题是:我在这里有什么选择?

不需要传输很多复杂的数据。所有这些都可以很容易地按字节传输,因为数据可以是字符串、数字或二进制数据(可执行文件)。

我正在考虑创建一个简单的协议,通过 TCP 从服务器向服务器发送字节命令,但我不确定这是否是一个好的解决方案。

这是一个基本的设计决策,因为这两个项目都非常大。我必须谨慎决定。有什么建议么?

谢谢!(如果您有更好的标签,请随时编辑此问题的标签)

4

2 回答 2

1

一种选择是使用 DCOM;这里有几篇文章可以帮助您入门:How to write a DCOM server in C# , Calling Managed .NET C# COM Objects from Unmanaged C++ Code。如果 C# 和 C 进程都在同一个主机上,那么 COM 就足够了,代码也更简单一些。

于 2014-02-03T17:12:15.800 回答
1

查看您的评论并了解两台服务器将如何托管在同一台机器上,您可以考虑使用基本的内存映射文件在两者之间进行通信:

C# 中的内存映射文件/ C中的命名共享内存

但是,如果您想让这个平台独立,您可以考虑使用可用于 C# 和 C 等的Protobuf 。这将采用您创建 TCP 协议的想法,但是您使用一个有据可查且行业范围广泛的协议,这将使应用程序更容易支持向前发展。

于 2014-02-03T18:04:04.770 回答