2013-01-13 24 views
1

我目前基於socket技術在我的客戶端(C++)和服務器(.NET)使用基於 socket通信發送和接收數據的工作取代我現有的.NET套接字服務器,但現在我希望用WCF替換我現有的套接字服務器。我想徹底做任何這樣的運動如何與WCF

1)前澄清其是否有可能取代現有的插座,如果是我怎麼能做到這一點。 2)服務器套接字應用程序偵聽在定義的IP /端口和客戶Socket應用程序發送請求到IP /端口只,但在WCF的情況下,有完整的URI即與IP /端口還含有WCF服務的名稱,所以如何做這個。 3)我需要使用哪種類型的綁定配置,如果它是基本的或wshttp不能,它會嚴重影響我的應用程序的性能。

+0

嘿,任何人都可以請回答我的問題。我相信我的問題是可以理解的。 – user1888859

+0

WCF的學習曲線相當陡峭。我會從閱讀開始 - 任何「Juval Lowy」或「Julia Lerman」都會很好。 –

回答

1

當我們使用套接字編程時,我們在非常低的層次上執行它,並且與套接字應用程序相比,wcf,web服務或遠程處理都不會執行得很好。 WCF提供瞭如此多的功能,但所有這些功能都基於綁定配置,而且與套接字應用程序相比,所有這些功能都處於非常高的水平,因此就性能而言,套接字應用程序與wcf相比將表現良好,並且如果已經構建無需替換它。

1

如果不知道應用程序的所有細節,這是一個很難回答的問題,所以我會嘗試以不同於您問的順序來回答這個問題。

2)WCF支持multiple transport configuration。這些不限於HTTP。例如,net.tcp傳輸根本不使用http,但它確實實現了一些複雜的功能,您需要在客戶端進行復制。例如Message Framing。這限制了你選擇其中一種基於標準的方法(除非你喜歡這樣做)。

3)是在HTTP傳輸可能比直接socket通信速度較慢。您將需要從WCF準確地描述您需要的功能以及您需要的性能,因爲有許多不同的配置選項會對此產生影響。

1)所以我想這是主要的答案。是的,但可能需要您在客戶端和服務器上進行更改。雖然您可能可能擴展WCF以支持您現有的套接字消息傳遞格式,但這可能是一個困難且昂貴的開發過程。因此,您希望使用Web服務(又名http綁定之一)而不是net.tcp,msmq等實現此目的。

請注意,WCF實際上極其可配置,每個圖層都可以定義自定義因此,我建議您閱讀documentation