Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux和Windows上与C#的进程间通信_C#_Linux_Windows_Mono_Ipc - Fatal编程技术网

Linux和Windows上与C#的进程间通信

Linux和Windows上与C#的进程间通信,c#,linux,windows,mono,ipc,C#,Linux,Windows,Mono,Ipc,我需要在我的应用程序中引入IPC,我还需要继续在GNU/Linux和Windows上发布(目前我在GNU/Linux上使用mono,在Windows上使用.NET,在这两个平台上都支持GTK+)。通信限制在同一个盒子上 在两个系统上进行IPC的最佳方式是什么 我读到DBUS在Windows上也可以使用主流源代码。有人有经验在windows上使用它吗 提前感谢大家。Mono有相当好的WCF支持,对于平台无关的IPC非常有效。我在Linux上使用DBus的经历非常糟糕 最后,我用自定义格式的tcp套

我需要在我的应用程序中引入IPC,我还需要继续在GNU/Linux和Windows上发布(目前我在GNU/Linux上使用mono,在Windows上使用.NET,在这两个平台上都支持GTK+)。通信限制在同一个盒子上

在两个系统上进行IPC的最佳方式是什么

我读到DBUS在Windows上也可以使用主流源代码。有人有经验在windows上使用它吗


提前感谢大家。

Mono有相当好的WCF支持,对于平台无关的IPC非常有效。

我在Linux上使用DBus的经历非常糟糕


最后,我用自定义格式的tcp套接字替换了它(但数据非常有限,因此开发自定义格式根本不需要太长时间)。

我只需要使用远程处理

仅仅因为其他选项很糟糕:

  • WCF在单声道中非常有限

  • 正如罗尔夫所说,DBus有它的问题;更不用说它的C#故事有点笨拙,也就是说:最好的解决方案是使用托管DBU,您可以使用NDesk.Dbus,但是这个库被重命名为Dbus sharp;但是Gnome世界正在转向使用GDbus,目前还没有绑定

  • Rolf建议的插座对我来说太低了


向下投票,因为WCF在Mono中的支持非常有限:.NET远程处理现在是一种遗留技术,不推荐用于新开发。请参阅该文章中的@j123b567,远程处理被认为是分布式应用程序的遗留问题,但这个S.O.问题只涉及IPC用例。NET远程处理作为API遗留,因此对于某些用途(如IPC)没有例外。真正的问题是,它是否会被弃用并从.NET中删除。但这是一个完全不同的问题,是的,也许现在最好的解决方案是gRPCRemoting在.NETCore中不可用