Это возможно.Сервер - это просто Java-программа.Вам может понадобиться создать два потока в этой программе.Один - для связи с клиентами, а другой - для связи с подсервером.(Вам нужно создать поток для каждого подчиненного сервера).В этой ветке вы можете отправлять / получать данные на / с клиента / субсервера.
ГЛАВНЫЙ СЕРВЕР Ваш главный сервер будет многопоточным, каждый из которых имеет дело с отдельным субсервером.Каждый поток будет иметь сокет, который будет подключен к соответствующему субсерверу.По ниткам.Я имею в виду, что вы будете выполнять все операции чтения / записи на / с субсервера в методе run этого потока.
SUB SERVER Если у вас один клиент, вам нужно создать два потока.Один для связи с MainServer и другой для связи с клиентом.Похоже каждый поток будет иметь сокетное соединение соответствующей сущности.В случае нескольких клиентов вам необходимо создать несколько потоков, каждый для обработки запроса от конкретного клиента.
Нам необходимо использовать поток, поскольку одновременно будет работать несколько вспомогательных серверов и несколько клиентов.