我有点卡在这里。我有一个用C#.NET编写的服务器B ,并与我想要使用的设备进行通信(例如调试它)。然后是服务器A (用C编写)与我的Eclipse通信。这两件事都没有问题。
问题始于我需要从服务器A 与服务器B 进行通信。我不能使用 A 中的 B 的DLL,因为它们是在.NET Framework 2.0下编写的,并且在C代码中使用它们似乎相当复杂。
我的问题是:我有什么选择?
没有很多复杂的数据需要传输。所有这些都可以轻松地按字节传输,因为数据将是字符串,数字或二进制数据(可执行)。
我正在考虑创建一个简单的协议,通过TCP将服务器上的字节命令发送到服务器,但我不确定这是否是一个很好的解决方案。
这是一个基本的设计决策,因为这两个项目都很大。我必须谨慎决定。有什么建议吗?
谢谢! (如果你有更好的问题,请随意编辑这个问题的标签)
答案 0 :(得分:1)
一种选择是使用DCOM;这里有几篇文章可以帮助您入门:How to write a DCOM server in C#,Calling Managed .NET C# COM Objects from Unmanaged C++ Code。如果C#和C进程都在同一主机上,那么COM就足够了,代码就更简单了。
答案 1 :(得分:1)
查看您的评论并了解两台服务器将如何托管在同一台计算机上,您可以考虑使用基本内存映射文件在两者之间进行通信:
Memory mapped files in C# / Named Shared Memory in C
但是,如果您想使此平台独立,您可以考虑使用可用于C#和C的Protobuf等。这将采用创建TCP协议的想法,但您使用了一个记录良好且行业范围广泛的协议,这将使应用程序更容易支持。