我有一個與.Net遠程進行通信的客戶端/服務器應用程序。我需要我的客戶端能夠在網絡上找到服務器而不需要客戶端配置。遠程處理服務器自動發現。是否播放?
據我所知,在遠程處理中沒有發現支持。我準備實施一個UDP解決方案,客戶端可以通過廣播消息找到服務器。
在我繼續之前,我想聽聽集體智慧智慧。這是最好的方法嗎?還有其他建議嗎?
我有一個與.Net遠程進行通信的客戶端/服務器應用程序。我需要我的客戶端能夠在網絡上找到服務器而不需要客戶端配置。遠程處理服務器自動發現。是否播放?
據我所知,在遠程處理中沒有發現支持。我準備實施一個UDP解決方案,客戶端可以通過廣播消息找到服務器。
在我繼續之前,我想聽聽集體智慧智慧。這是最好的方法嗎?還有其他建議嗎?
我已經看過SSDP和UPnP這種類型的功能,但我建議使用自定義UDP multicast解決方案。基本上,多播與廣播非常相似,但只有已加入多播組的機器(即請求廣播)才被聯繫。
恕我直言,SSDP和UPnP和臃腫和過度複雜的資源發現......但嘿,這是一個標準。 ;)
我在遠程工作中找到的最佳解決方案是將服務器列表保存在客戶端系統上的配置文件中並使其可更新。不是最容易維護的,但速度很快,沒有廣播。
似乎你需要的是Simple Service Discovery Protocol或SSDP。這是在Windows中實現的,作爲Microsoft對Universal Plug and Play的支持的一部分。由於這是一個行業標準協議,它似乎是一個很好的選擇。例如,如果你想要處理防火牆或其他問題,這將被其他人想出來,而不是你必須推出自己的解決方案。
既然你在說.NET,我會假設你在Windows上。有一個比較老的文檔(2001)描述了一個C風格的API和一個用於Windows的COM API,標題爲Universal Plug and Play (UPnP) Client Support。 COM API由UPNP.DLL公開,而SSDP的C風格API由SSDPAPI.DLL公開。
COM-style APIs for UPNP可能是你最好的選擇。由於C#可以爲你包裝COM對象並處理互操作。我找不到這個API本地移植到C#或.NET Framework的地方。
由於最近的MS更新,我的多播UDP解決方案似乎不可靠。
我已經有一個客戶端配置解決方案。這個禁止觸碰的要求已經在我的膝蓋上重新下降了。基本上,我們需要以最少的管理干預部署到大量虛擬終端用戶。無論如何。 – Ishmaeel 2008-09-07 19:49:00