Страница 1 из 1

Список доступных серверов в локальной сети

СообщениеДобавлено: 06 янв 2017, 19:55
NapalmRain
Доброго всем времени суток!
Пишу простую мобильную игру, стоит наипримитивнейшая задача: поиск существующих в локальной сети серверов.
В теории задача не должна быть сложной, ведь она уже решена буквально во всех играх, практикующих локальный мультиплеер.
Официальная документация юнити предлагает делать это по средствам мастер сервера, но в случае с мобильной игрой с мульплеейром на 2-3 человека, заставлять людей моднимать мастер сервер илиже держать свой выделенный нецелесообразно. Посему хотелось бы какой-то иной способ.
На тостере нашёл следующий совет:
Синтаксис:
Используется csharp
UDP broadcast: 255.255.255.255

Затем отвечают те клиенты, которые хотят, чтобы их видели и в ответных пакетах - будут их IP-шники.

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

Заранее благодарю за любой ответ!

Re: Список доступных серверов в локальной сети

СообщениеДобавлено: 08 янв 2017, 01:33
BenjaminMoore
если есть сервера, то и есть сеть, от нее и нужно отталкиваться
в uNet в llapi есть в классе NetworkTransport метод для броадкастинга
вроде и hlapi тоже обертка есть

Re: Список доступных серверов в локальной сети

СообщениеДобавлено: 10 янв 2017, 10:56
NapalmRain
BenjaminMoore писал(а):если есть сервера, то и есть сеть, от нее и нужно отталкиваться
в uNet в llapi есть в классе NetworkTransport метод для броадкастинга
вроде и hlapi тоже обертка есть


Благодарю за ответ!
Попробую посмотреть в этом направлении.

Странно, конечно, что такой тривиальный вопрос и не имеет простого и лаконичного ответа...

Re: Список доступных серверов в локальной сети

СообщениеДобавлено: 10 янв 2017, 15:48
seaman
NetworkDiscovery.StartAsServer на сервере - запускаем броадкаст
NetworkDiscovery.StartAsClient - запускаем слушателя броадкаста - клиента
NetworkDiscovery.OnReceivedBroadcast - событие - получили броадкаст на клиенте.

Такое пойдет?

Re: Список доступных серверов в локальной сети

СообщениеДобавлено: 10 янв 2017, 20:29
NapalmRain
seaman писал(а):NetworkDiscovery.StartAsServer на сервере - запускаем броадкаст
NetworkDiscovery.StartAsClient - запускаем слушателя броадкаста - клиента
NetworkDiscovery.OnReceivedBroadcast - событие - получили броадкаст на клиенте.
Такое пойдет?


Да, спасибо, я буквально сегодня штудировал весь NetworkDiscovery.
Это, по всей видимости, как раз то, что нужно. На практике только пока не проверял.