#java #tcp
#java #tcp
Вопрос:
Я пытаюсь создать простой сервер чата на Java. Теперь у меня есть поток, который принимает соединения tcp-ip, объявляет пользователей, удаляет пользователей и добавляет комментарии.
Я хотел бы удалить всех пользователей, которые были включены в течение x времени и не имели контакта с сервером чата. Я собирался создать отдельный поток, который был бы в другом классе для этого.
Проблема в том, что поток, который принимает соединения, содержит класс с именем CUser для обработки пользователей, а класс для выполнения тайм-аута не будет видеть этот класс.
В c я мог бы просто иметь глобальный. Я думал о том, чтобы сделать все члены класса CUser статичными, кажется немного запутанным.
Есть ли чистый способ сделать это?
Ted
Комментарии:
1. вам нужно использовать
wait
иnotify
2. вы говорите о классе CUser или экземпляре класса? если это внутренний класс, то, сделав его общедоступным, вы сделаете его видимым…
Ответ №1:
Если доступ к классу является вашей главной заботой, то перемещение его в отдельный файл и удаление общедоступного класса — это один из вариантов.
Или вы можете использовать методы обратного вызова в основном классе, чтобы иметь возможность взаимодействовать с вашим внутренним классом
Also you can use this.getClass().getDeclaredClasses() to access the inner class
Комментарии:
1. Спасибо, что дали мне некоторое представление. Проблема в том, что у меня будет 2 класса. Один класс будет добавлять и удалять пользователей. Другой класс выполняет функцию очистки и удаляет всех пользователей с тайм-аутом. Мне нужно, чтобы оба класса могли использовать один и тот же класс, который обрабатывает пользователей.
2. Если вы можете опубликовать несколько примеров кода, которые помогут решить больше. 1 за ваш вопрос, приветствую!