Java -нужны два потока для совместного использования одного и того же класса для простого сервера чата

#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 за ваш вопрос, приветствую!