Существует несколько вариантов и их можно использовать для достижения этой цели.
децентрализованные один
Что вы можете сделать, это broadcasting запрос от приложения, которое запрашивает каждые хосты в сети, если они в настоящее время доступны для игры (отправив запрос на 255.255.255.255
, например, вызовет ваш маршрутизатор для повторной передачи дейтаграмм, отправленных на каждый хост в локальной сети).
Это обеспечит ответ на этот запрос только хозяевам, у которых была запущена игра и которые готовы к игре.
Несколько широковещательных протоколов сегодня широко используются в локальной сети. Один из них - SSDP (Simple Service Discovery Protocol), который используется с протоколом UPnP для обнаружения службы. Разумеется, для многопользовательских игр есть много подходящих протоколов, используемых для широковещательной/многоадресной рассылки.
Централизованные один
Одним из наиболее распространенного способа обнаружить игрок на многопользовательскую игре остается в присутствии центрального сервера, на котором оба запрашивающей (люди, которые ищут для игры) и хосты (люди, которые размещают игру) связаны.
Этот метод имеет тот недостаток, что у него есть одна точка отказа, которая является сервером, но имеет преимущество, в отличие от децентрализованного решения, как подходящего для локальной сети, так и для Интернета (или каждого протокола на основе IP).
Если бы мне пришлось разработать многопользовательскую игру, я бы начал копаться в отношении функции обнаружения хоста, которую вы должны реализовать.
Проверить это ... http://stackoverflow.com/questions/1238963/query-arp-cache-to-get-mac-id – SmV
спасибо за реакцию. Я не ищу MAC-адреса, как он был, но для ip-адресов, поэтому я надеюсь, что кто-то может помочь мне с этим альтернативным способом. –