2010-09-14 41 views
4

我有一個很大的C#/ WPF應用程序。此應用程序需要從其他「子」應用程序收集數據,這些應用程序將運行在Windows服務 - 同一網絡,不同的PC上。套接字是處理兩者之間通信的最佳方式(而不是遠程處理或其他方式)?套接字與服務對話是否有效?

+0

我也對這個問題感興趣 – SinistraD 2010-09-14 00:07:36

回答

5

對於v3.5及更新版本中的跨進程通信,WCF是推薦的方法。套接字和命名管道可以/將工作,但你會發現通過WCF更好的支持。

+0

上升爲支持評論。 – DaveE 2010-09-14 00:09:27

5

沒辦法。使用WCF

2

我想說它最終取決於你的性能要求。將WCF看作套接字之上的抽象層。您爲分層付費的價格是性能,但如果WCF沒有爲您提供足夠的性能,我會感到驚訝。

+1

在進程/機器之間傳輸大量字符串時,Wcf對我們來說失敗了,無數配置選項的文檔都很差。內存似乎特別糟糕地管理Wcf連接時發生抖動。我們最終編寫了自己的Rpc實現,使內存和Cpu保持在更合理的水平,但這是一項非常艱鉅的工作。 – spender 2010-09-14 00:40:56

+0

我必須說我很驚訝,但是,那對我來說是一個相當熟悉的感覺。 :-) – 2010-09-14 00:45:20

+0

WCF需要調整和配置才能獲得良好的性能。 – 2010-09-14 04:36:44

0

套接字是你能夠獲得的最快速的東西,所以如果你需要儘快完成,你應該使用套接字。他們比WCF更復雜,但作爲回報,您可以完全控制最低級別。

還要準備實際的瓶頸將在客戶端和服務器之間傳遞的對象的序列化/反序列化(當然如果它們很複雜)。