2010-09-07 33 views
5

我有一個基於TCPListener的服務器應用程序,它監聽單個特定端口上的客戶端。客戶端連接,發送一些xml,返回一些xml作爲響應,然後斷開連接。WCF服務可以取代TCPListener的功能嗎?

是否有可能用WCF服務替換基於TCPListener的應用程序而不改變客戶端?如果有的話,任何人都可以建議哪些資源可以幫助我建立這樣的服務?

+4

沒有*任何*更改爲客戶?在TCPListener之上使用什麼協議?如果它不是SOAP/JSON,我認爲沒有修改客戶端代碼就沒有多少運氣。 – 2010-09-07 16:14:06

+0

它既不是,客戶端是第三方應用程序,這就是爲什麼我不能改變它們。 – Andrew 2010-09-07 23:06:23

回答

5

理論上是的。 WCF有很多可擴展點,所以你可以包含自己的message encoder,你自己的transport channel等等。你可以包含自定義行爲來影響消息格式等。即使你擁有專有的消息格式或傳輸協議,你也應該能夠做到這一點。但是這是很多工作。

如果你真的想嘗試它,你可以從自定義消息編碼器開始,它將消息並將其作爲自定義XML格式寫入二進制編碼器。將這個新的編碼器與自定義綁定結合在一起構建在tcpTransport中。這將很難調試。示例提供了添加JSONP支持的example。我認爲這是類似的做法。它使用內置的傳輸和編碼器,並添加自定義消息格式。

+1

聽起來像很多工作沒有什麼好處,TCPListener解決方案運行良好,我只是好奇,如果這是可能的。 – Andrew 2010-09-07 23:07:10

相關問題