@Quiensabe
VR-разработчик

Unity3D. Как найти сервер в локальной сети?

Доброго времени суток!

Я начинающий разработчик под Андроид и делаю небольшую игру на Unity. И вот возник вопрос по реализации мультиплеера внутри локальной игры.

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

Моя игра будет работать только внутри локальной сети, максимум с парой десятков активных ip-адресов.
И я для себя придумал два способа:

1. Перебрать все адреса сети, в поисках ответа от сервера. Способ кривой, да и как перебирать только активные адреса, а не вообще все 255 по маске - я не нашел. Учитывая, что нужно еще давать какое-то время на ответ... В общем способ вообще не годится.

2. Хранить ip-адрес сервера на внешнем сайте. Сейчас я так и сделал, ip сохраняется на моем сайте, все работает как надо, но выглядит это, на мой взгляд, как дурной велосипед. Кроме того в закрытой сети система не сможет работать вообще, что крайне неудобно.

В общем, у меня ощущение, что я упускаю какой-то простой и удобный механизм...

Я далек от программирования сетевых взаимодействий, моя область это графика и UI, поэтому буду благодарен за какие-то простые, практичные советы. Путь это будет не самое красивое/быстрое/точное решение, но если я смогу его быстро прикрутить к своему приложению (в идеале скачав ассет из стора) - буду очень вам благодарен!

Сейчас приложение реализовано на Unity Network (UNet) по примеру работы чата. "Настоящий" мультиплеер мне не нужен, достаточно обмена текстовыми командами между каждым из клиентов и сервером.
  • Вопрос задан
  • 1301 просмотр
Решения вопроса 1
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
UDP broadcast: 255.255.255.255
Затем отвечают те клиенты, которые хотят, чтобы их видели и в ответных пакетах - будут их IP-шники.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Rou1997
@Rou1997
Вы ошибаетесь, ничего вы не упускаете, нет такого механизма, поэтому и в глобальных сетях сервер должен иметь статический (постоянный) IP, иначе к нему неудобно подключаться и невозможна парковка домена.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы