两个C#应用程序(32位和64位)之间进行IPC的最佳方法是什么?

3

一个是64位,另一个是32位。我目前正在制作32位应用程序控制台,并阅读输出。有更好的方法吗?我的数据是文本。

编辑:两个可执行文件都在同一台机器上。


你能否将64位应用程序编译为x86并仅使用一个进程? - David Heffernan
你为什么不合并? - David Heffernan
如何在64位环境下合并它们并运行32位? - blez
你能解释一下为什么不能全程使用32位吗?如果可以的话,单个进程可能会更容易一些。 - David Heffernan
请查看此页面右侧的相关问题列表。有几个主题与您的问题类似。 - Eugene Mayevski 'Callback
显示剩余2条评论
3个回答

1

如果你被限制在使用.NET 2.0,那么有几种方法可以实现:

  1. 如果两个应用程序在不同的机器上,你可以使用套接字或者.NET Remoting(取决于交互的复杂性)
  2. 如果两个应用程序在同一台机器上,.NET Remoting是一个不错的选择。

它们是32位还是64位并不会以任何方式影响这个问题。


@blez:那我建议使用.Net Remoting。它允许您直接从一个程序调用另一个程序中的方法。 - Tudor
这不是使用套接字吗? 那么它可能会被防火墙或杀毒软件阻止吗? - blez
@blez:在同一台机器上,我认为它使用共享内存。您可以指定要使用的底层机制。 - Tudor

0

这是使用套接字吗?它能被防火墙阻塞吗? - blez
@blez,是的,它可以被阻止。您可以使用防火墙例外中的端口。 - Darin Dimitrov
@blez,是的,命名管道是一种替代方法。 - Darin Dimitrov
@DarinDimitrov 出于好奇:IPCChannel类是否真的使用了可能被防火墙阻止的套接字? - yas4891
@yes4891:它不使用套接字。来自MSDN的说明:“因为它不使用网络通信,IPC通道比HTTP和TCP通道快得多,但它只能用于在同一台物理计算机上的应用程序域之间进行通信。” - Tudor
显示剩余3条评论

0

在进行IPC时,程序是32位还是64位并不重要,所以选择你想要的方法即可(请参见this post)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接