Обнаружение сети в Java Multicast / Broadcast Java - PullRequest
0 голосов
/ 10 декабря 2011

Вот что я пытаюсь сделать: сервер отправляет «Живое сообщение» всем ПК в сети и ПК, которые работают и работают, отвечают на вызов, отправляя их IP.

Я смотрю на легкий фрагмент кода, так как это сформирует небольшую часть моего приложения.

Я посмотрел на Jini и другие сервисы, но обнаружил, что мне может не понадобиться даже половина их функций (кромедля обнаружения сети)

Это нормально, если я: 1. Используйте цикл for, где сервер открывает сокет, проверяет (используя цикл for), достижимы ли все IP-адреса xxxx, отправив «Alive»сообщение 2. Получив «живое» сообщение на клиенте в определенном сокете, клиент отвечает своим IP.

Этот метод в порядке? Как вы думаете, я мог бы сделать это лучше?

Спасибо!

1 Ответ

2 голосов
/ 10 декабря 2011

У меня была похожая проблема давным-давно, и я решил ее следующим образом:

  • Сервер передает пакет UDP в сети на номер 255.255.255.255
  • Все доступные клиенты ответят UDP-пакетом, который включает их IP и любую другую информацию, которую вы хотите отправить.

Пакет, который я лично использовал, выглядит как

public class UDPDiscoveryPacket{
      public final long sendingTime;
      public final String clientIP;
      public UDPDiscoveryPacket(long sendingTime, String clientIP){
         this.sendingTime = sendingTime;
         this.clientIP = clientIP;
      }
}
...