我需要通知一對多客戶端執行任務(重新加載)。服務器可能會或可能不會在任何給定的時間點運行。 (出於這個原因,我有一些困難,定義誰是客戶,誰是服務器)。一種適用於我的情況的IPC形式
在任何給定時間內,服務器可能會開始運行。當服務器關閉時,它會通知所有客戶執行他們的任務。
我試圖用一個NamedPipeServerStream
並在「客戶端」(記住的關係如此奇和我一起承擔)運行多個實例。不幸的是,我只能爲任何給定的服務器名稱創建一個管道服務器。所以這不起作用。我可以讓客戶不斷檢查服務器,但是如果我要開始輪詢,那麼我也可以直接輪詢數據庫。
我的情況大致類似於觀察者模式。我不需要動態訂閱/取消訂閱。我確實希望服務器向所有正在運行的客戶端推送通知以執行任務。
我該如何做到這一點?請記住,我必須在IPC上做到這一點。服務器/客戶端在不同的進程下運行,並始終在同一臺計算機上運行。
服務器進程和許多客戶端進程**保證**是在同一臺機器上,還是服務器駐留在網絡地址上? – 2012-02-17 15:15:15
@ScottChamberlain - 同一臺機器。如果UDP或某種形式的網絡通信是唯一的方式來做到這一點,那麼我願意接受。 – 2012-02-17 15:16:35
保證是同一臺機器打開更多的選擇。 – 2012-02-17 15:19:34