Как клиент может автоматически разрешить IP-адрес сервера? - PullRequest
1 голос
/ 28 апреля 2010

Проект, над которым я работаю, представляет собой клиент-серверную архитектуру. В среде локальной сети я хочу, чтобы клиент мог автоматически определять адрес сервера. Я хочу избежать необходимости вручную настраивать каждый клиент с IP-адресом сервера. Каков наилучший способ сделать это? Вот некоторые альтернативы, о которых я думал:

  1. Сервер может прослушивать широковещательные пакеты от клиентов. Сообщение от клиента будет запрос на IP-адрес сервер. Сервер ответит своим адресом.
  2. Машина, на которой запущен сервер моего проекта, также может иметь сервер связывания работает. Маршрутизатор локальной сети может быть настроен на использование его в качестве одного из его DNS-серверы.
  3. Я думаю, что видел это есть библиотека bind. Это делает значит, я могу построить сервис связывания в мой сервер, так что связывание не должны быть установлены на сервере?

Есть еще идеи? Что ты делал в прошлом? Каковы плюсы / минусы этих подходов и другие, которые могут быть предложены?

Спасибо за вашу помощь!

Ответы [ 2 ]

1 голос
/ 28 апреля 2010

Вы можете использовать новую функцию Discovery в WCF 4.0. Возможны две вещи:

  1. Сервер может сообщить в сеть, что он поднялся или отключился, и клиенты могут подключиться к нему или посмотреть в другом месте, соответственно.
  2. Клиент передает запрос на услугу, и все соответствующие службы в сети будут отвечать. Затем клиент может выбрать услугу, которую он хочет использовать.

Вы можете использовать один или оба, и все это обрабатывается WCF, так что на самом деле использовать его мало. Вы даже можете настроить прокси WCF, если у вас ограниченная топология сети (например, NAT или другие проблемы с маршрутизацией). Прокси-серверы могут кросс / конвертировать протоколы и даже иметь собственную балансировку нагрузки или другую логику маршрутизации.

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

1 голос
/ 28 апреля 2010

Мне нравится номер один, который кажется мне самым коротким и простым. Может быть сложно, если «LAN» на самом деле включает в себя коммутаторы, через которые вы не можете вещать. Тогда должна помочь многоадресная рассылка.

Вы также можете использовать DNS, как в Zeroconf . См. Bonjour для получения информации о реализации.

...