Сетевая игра Java: Как составить список доступных серверов?

Я работаю над игрой, которая использует локальную сеть. Как и в большинстве многопользовательских игр, здесь есть серверно-клиентская система. Компьютер А запускает экземпляр программы, создает сервер и ждет; Компьютер B делает то же самое. Теперь компьютер C запускает программу, я хочу, чтобы он мог видеть компьютеры A и B, перечисленные там как игровые серверы. Как я могу это сделать?
Чтобы вывести список всех доступных серверов, простое решение может быть таким: мне нужно проверить все IP-адреса в определенном диапазоне и посмотреть, отвечают ли они через мой конкретный порт или нет. Если да, то на нем запущен экземпляр игры, который должен быть указан в списке серверов.
Является ли решение, описанное выше, хорошим? Я искал и получил этот фрагмент кода:

public void checkHosts(String subnet){
    int timeout=1000;
    for (int i=1;i<254;i++){
        String host=subnet + "." + i;
            if (InetAddress.getByName(host).isReachable(timeout)){
                System.out.println(host + " is reachable");
            }
    }
}

, но это занимает так много времени и бесполезно. Если это не правильное решение, какие есть другие способы?

5
задан mehrmoudi 23 March 2012 в 13:58
поделиться