如何在同一台计算机上与两个不同的进程进行通信?

时间:2014-12-31 05:49:14

标签: c# winforms

在同一台PC上有两个独立的处理运行我希望在这两个进程之间进行通信。 比如将一些数据从一个进程传递给另一个进程。

2 个答案:

答案 0 :(得分:1)

WCF

Windows Communication Foundation

通常,您需要实现客户端 - 服务器体系结构并定义接口端点,以在充当客户端的进程和服务器进程之间进行通信。

另一种方法是创建一个Remotable类 动态库(DLL),以便客户端和服务器都可以引用相同的远程类。

服务器必须创建远程类的实例才能理解您传达的面向对象数据,并且可以在TCP通道上进行监听。

e.g

ChannelServices.RegisterChannel( new TcpChannel( PORT_NUMBER) );       

RemotingServices.Marshal( your_remoted_class, "name_connection" );

或者对于本地使用,您只需使用IpcServerChannel API

即可

现在客户端 如果您使用TCP端口侦听服务器

string remoted_url = "tcp://localhost:<your_port_number>/connection name";

remoted_object = (RemotedClass)RemotingServices.Connect

( typeof(RemotedClass), remoted_url );

客户端现在可以通过remote_object调用公共函数。

答案 1 :(得分:0)

如果你对技术有点具体,那么我可以缩小我的答案。

在一个非常通用的说明中,这些是两个进程之间进行通信的方式。

  1. 通过公共文件进行消息通信。
  2. 两个进程之间的套接字通信。
  3. 互斥
  4. 任何中间服务。
  5. 还有其他几种方法。