2011-01-12 57 views
1

如何在.NET(特別是WPF)應用程序和在後臺運行的MFC應用程序之間設置命名管道?我需要提供發送XML實例的同步和異步消息。有沒有辦法使用回撥體系結構?如何在.NET和MFC之間設置命名管道?

+0

如果它們都運行在同一個系統上,命名管道是必須的嗎? MMF對本地通信來說更好,而老式的好插座在整個網絡中都更好。 – 2011-01-12 21:01:33

+0

命名管道是一個命名管道 - 只是特殊的內存緩衝區。您只需確定哪個應用程序是服務器,哪一個是客戶端。剩下的是特定於MFC,.NET的 - 如果你閱讀文檔,並不難。 – Nickolodeon 2011-01-12 21:25:13

回答

0

在MFC應用程序中:我不認爲有專門用於幫助命名管道的MFC類,但Windows命名管道API不是太難,或者您可以考慮爲更高級別打開源/共享類抽象(for example here

在.NET應用程序中,System.IO.Pipes命名空間中的類型提供了一個非常簡單易用的命名管道的流抽象。

決定你將不得不作出包括:

  1. 哪個應用程序是管道服務器,負責創建管監聽其他應用程序(管道客戶端)進行連接。
  2. 您可以直接使用OS提供的消息流模式(每次寫入管道都被視爲一條消息),還是需要在管道字節流中構建自己的消息幀:

支持雙工操作,因此如果需要,可以在管道消息傳遞上構建「回調體系結構」。

Windows Communication Framework提供了命名管道傳輸綁定。但是,即使在WPF應用程序方面,這對你來說也沒有什麼用處,除非你想在MFC端重新實現一部分在原始管道通信上層疊的部分記錄的微軟協議(你可以閱讀更多關於on my blog if你感興趣)。