2010-07-28 56 views
1

我一直在.net工作几年,这是我第一次进入IPC。我知道做IPC的各种可能性(命名管道,远程处理,剪贴板管理,Win32API消息传递),但我不知道什么“适合我”。我打算使用以下设置:C#IPC建议和比较

站点对象:这是需要ipc的原因。它将是代表远程机器上文件集合的单个对象(可能是本地的,可能是真正的远程)。

服务器:server.exe进程将监视上面提到的文件系统,并更新站点对象此过程将随后保持连接到服务器的所有客户端更新,并定期发布新的Site对象副本(从客户端强制更新或服务器自动更新)。

客户:需要定期更新“网站”。它也希望能够修改站点对象(或至少发送消息到服务器,要求它做出特定的修改)

TL; DR版本:服务器上的Singleton实例(它将主动修改单例) ,有多个客户端监控单身人士,客户可以更改(或请求服务器更改)单身人士

备注:所有的.net,没有混合的平台我看了一下Remoting,但它似乎超出了(或者我完全不理解)

我不确定这些更适合社区维基是否适合社区维基,请随时加以改变。

感谢

+0

这看起来像一个大学作业:) – sukru 2010-07-28 20:33:52

+1

远程处理支持事件,但我不会使用它,除了在局域网上。你可以看看WCF和双重绑定来回发送消息。也读取SO - http://stackoverflow.com/questions/56121/ipc-mechanisms-in-c-usage-and-best-practices – 2010-07-28 20:37:26

+0

哈,我希望它在哪里大学的任务。我们正在取代一个15年前的系统,做了同样的事情。我们的解决方案是基于Shmem推出我们自己的IPC。我们希望做类似的事情,但希望能够用Object来完成。 – greggorob64 2010-07-28 21:52:06

回答

3

.NET Remoting是.NET 2.0的只是功能 - 一组技术和库,它简化了常见的进程间commutication方式使用(命名管道,网络套接字,HTTP发布/查询得到)

在.NET 3.0中它是WCF。

因此,歌词,至于你:在安全局域网上的机器之间使用TCP套接字,在互联网上使用HTTP(Soap,WebMethods或HTTP)和一台机器上的IPC来进行通信进程(客户端和服务器) 您选择的平台(.NET 2.0 Remoting或.NET 3.0 WCF) - 这取决于您。

P.S .:我仍然使用.NET 2.0 Remoting框架。

+0

感谢您的信息,我们在Visual C++。net中做了一个额外的警告,并且WCF不可用,所以我非常确定我只需要继续研究如何使远程适合。 – greggorob64 2010-07-29 15:14:41