сервер соединяет сервер используя serversocket и сокет - PullRequest
0 голосов
/ 29 февраля 2012

есть ли возможность создать сервер на основе Java, который будет подключаться к другому серверу ... Моя главная цель - подключить основной СЕРВЕР с помощью вспомогательного сервера, который передает данные на основной СЕРВЕР.

Ответы [ 2 ]

0 голосов
/ 29 февраля 2012

Это возможно.Сервер - это просто Java-программа.Вам может понадобиться создать два потока в этой программе.Один - для связи с клиентами, а другой - для связи с подсервером.(Вам нужно создать поток для каждого подчиненного сервера).В этой ветке вы можете отправлять / получать данные на / с клиента / субсервера.

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

SUB SERVER Если у вас один клиент, вам нужно создать два потока.Один для связи с MainServer и другой для связи с клиентом.Похоже каждый поток будет иметь сокетное соединение соответствующей сущности.В случае нескольких клиентов вам необходимо создать несколько потоков, каждый для обработки запроса от конкретного клиента.

Нам необходимо использовать поток, поскольку одновременно будет работать несколько вспомогательных серверов и несколько клиентов.

0 голосов
/ 29 февраля 2012

Это определенно возможно.Однако, если вы планируете сделать ваши серверы доступными из Интернета (а не локально), вам придется настроить PAT (переадресацию портов) на вашем маршрутизаторе.Хотя мне интересно, нужен ли вам суб-сервер?Если задача вспомогательного сервера состоит в том, чтобы взаимодействовать исключительно с главным сервером, вам не нужно настраивать вспомогательный сервер как «сервер».Вы можете заставить его функционировать как «клиент» для основного сервера, что намного проще.Однако если вы хотите, чтобы дополнительный сервер также был доступен из Интернета, вам необходимо настроить его следующим образом.

Ссылки:

Переадресация портов

Java Sockets

...