2010-04-28 39 views
1

我正在開發的項目是客戶端/服務器體系結構。在局域網環境中,我希望客戶端能夠自動確定服務器的地址。我想避免必須使用服務器的IP地址手動配置每個客戶端。做這個的最好方式是什麼?我想過的一些選擇是:客戶端自動解析服務器的IP地址的方法是什麼?

  1. 服務器可以偵聽來自客戶端的廣播數據包。 來自客戶端的消息將是 對 服務器的IP地址的請求。服務器會迴應它的地址。
  2. 運行我的項目服務器的機器也可以運行一個 bind server。局域網的路由器 可以配置爲使用它作爲其 DNS服務器之一。
  3. 我想我看到 有一個綁定庫。 是否意味着我可以將綁定服務 構建到我的服務器中,以便綁定不需要在服務器上安裝 ?

還有其他想法嗎?你過去做了什麼?這些方法和其他可能建議的優點/缺點是什麼?

感謝您的幫助!

+0

該服務器是基於Windows的。 – zooropa 2010-04-28 13:47:38

+0

客戶端可能是Windows筆記本電腦,iPod Touch和iPad的混合。 – zooropa 2010-04-28 14:10:34

回答

1

我喜歡排名第一,這對我來說似乎最短,最簡單。如果「LAN」實際上涉及不能通過廣播傳播的交換機,可能會變得棘手。然後,多播應該有所幫助。

您也可以使用DNS,如Zeroconf。有關實現的信息,請參見Bonjour

+0

Bonjour爲客戶免費提供。它對服務器也是免費的嗎? – zooropa 2010-04-28 14:12:06

1

您可以使用WCF 4.0的新發現功能。有兩件事是可能的:

  1. 服務器可以通知網絡,他已經上漲或下跌,客戶端可以分別連接到它或看看別處。
  2. 客戶端廣播一項服務查詢,網絡上的所有匹配服務都會回覆。客戶可以選擇他希望使用的服務。

您可以使用其中的一種或兩種,它們全部由WCF處理,因此幾乎沒有實際使用它的工作。如果您有嚴格的網絡拓撲(如NAT或其他路由問題),您甚至可以設置WCF代理。代理可以交叉/轉換協議,甚至可以定製負載平衡或其他路由邏輯。

http://msdn.microsoft.com/en-us/library/dd456782.aspx

+0

我認爲如果所有的客戶端和服務器都是基於Windows的,這將是一個很好的解決方案。如果服務器與iPad通信,它會工作嗎? – zooropa 2010-04-28 14:11:47

+1

那麼大部分東西都是WS-Discovery,這是一個獨立於平臺的Web標準。如果您使用支持該標準的iPhoneOS客戶端,那麼它將起作用。請參閱http://en.wikipedia.org/wiki/WS-Discovery – 2010-04-28 14:20:55

相關問題