2011-10-03 52 views
1

好的,這是我第一次使用.net遠程處理,但目前看起來很有趣。.Net遠程處理:反向連接

創建一個暴露遠程對象然後從客戶端使用它的服務器是一塊蛋糕,它像一個魅力。 (我使用TcpChannel btw)

我現在要做的是反轉連接。 當前服務器打開一個端口並偵聽客戶端,客戶端連接並獲取對象的引用並且很有趣。 我想改變的唯一事情是客戶端將等待連接而不是服務器。 該對象應該仍然在服務器上創建並從客戶端使用。

這對任何人都有意義嗎?! 如果是這樣,這可能嗎?

+2

僅供參考,遠程處理已棄用WCF。這可能很有趣,但它並不經常用於新開發。 –

回答

1

使用Remoting時,同意術語「服務器」和「客戶端」的含義是有用的。 「服務器」是正在監聽連接的機器。 「客戶端」是啓動連接的機器。

使用這些定義,您希望客戶端啓動連接,然後在客戶端創建的對象上具有服務器調用方法。

所以,你想要的是:

  • 客戶端創建一個MarshalByReferenceObject包含服務器將調用的方法。
  • 客戶端啓動與服務器的連接並將該對象引用傳遞給服務器。
  • 服務器存儲該對象引用,並根據需要調用該對象的方法。

所有這一切說,我同意評論說,你應該使用WCF而不是遠程處理。