Java: Как заставить клиентов обнаруживать сервер в сети? - PullRequest
4 голосов
/ 22 сентября 2010

За годы обучения в университете у меня был личный проект по созданию простой программы чата на Java с использованием сокетов TCP.Проект был только для образовательных целей.

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

Как мне реализовать такой механизм?Если бы вы могли указать мне правильное направление, я был бы благодарен.: -)

Я думаю, что сервер должен был бы сделать какую-то трансляцию, но я не уверен, как это сделать.

PS: я знаю, что, вероятно, есть другие /лучшие способы сделать это, но сейчас меня особенно интересует, как заставить клиента обнаруживать серверы в сети.

А под сервером я имею в виду серверную часть приложения чата, а не какСервер Tomcat.

Ответы [ 3 ]

3 голосов
/ 22 сентября 2010

Есть много способов сделать это, но я рекомендую вам взглянуть на JGroups .Это может быть несколько излишним для приложения чата, но его использование многоадресной рассылки предлагает интересные возможности, такие как архитектуры без серверов.

2 голосов
/ 22 сентября 2010

Вы можете попробовать использовать многоадресную рассылку, если она включена в вашей сети.

2 голосов
/ 22 сентября 2010

Посмотрите на ZeroConf, который предоставляет механизмы для объявления и обнаружения услуг. Apple широко использует это под именем Bonjour.

Проект jmdns - это реализация Java, которая работает довольно хорошо. http://jmdns.sourceforge.net/

...