2010-07-28 58 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