Squeak.ru - шаблоны программирования

Java - можно ли отправить клиента на другой сервер?

Я работаю над ServerSocket с java, и я хотел бы знать, при подключении клиента, можно ли отправить Client / Socket на другой ServerSocket. Например, клиент подключается к 123.41.67.817 (просто случайный IP-адрес), и при подключении клиент отправляется прямо, например, на 124.51.85.147 (другой случайный IP-адрес) с портом, конечно. Итак, небольшая карта того, что должно было произойти.

ServerSocket (прослушивание подключений)

Client ---> ServerSocket (клиент подключается)
ServerSocket -> Client (сервер говорит: Здравствуйте, я собираюсь отправить вас на 124.51.85.147)
Клиент -> ServerSocket (Клиент говорит: ОК!)
Клиент ---> ServerSocket (124.51.85.147) (Клиент отправляется на другой сокет сервера)
ServerSocket (124.51.85.147) -> Клиент (Server2 говорит: Добро пожаловать!)
и затем клиент останется на Server2 (124.51.85.147)

Возможно ли это каким-либо образом. Простите за длинный вопрос.

22.11.2015

  • актуально - stackoverflow.com/questions/8854675/ 22.11.2015
  • Как предлагает Кофе: Да, цель достижима. Вы можете перенаправить клиента на другой сервер или заставить клиента разговаривать с несколькими серверами. Вы просто не можете сделать это на том же сокете. Как говорит Стивен C ниже: TCP / IP-соединение - это диалог между парой IP-адресов. Посмотрите ссылку, которую дал вам кофе, и посмотрите, применимо ли она к вашему сценарию: stackoverflow.com/questions/8854675 22.11.2015
  • Хорошо спасибо. Я скоро посмотрю. 22.11.2015
  • По сути, вам нужно сообщить клиенту адрес нового сервера, а затем подключить клиента к новому серверу. Что-то вроде перенаправления HTTP, за исключением того, что вы должны кодировать его самостоятельно. 29.02.2016

Ответы:


1

Возможно ли это каким-либо образом.

No.

На самом базовом уровне соединение TCP / IP - это диалог между парой IP-адресов. В протоколе TCP / IP нет положения для изменения одного из двух IP-адресов во время разговора.

Даже если бы на уровне Java было возможно (каким-то образом) сериализовать объект Socket и отправить его в другую программу (локальную или удаленную), было бы невозможно изменить IP-адреса для основного диалога; см. выше.


Историческая сноска: давным-давно (1980-е годы) в далекой стране (Кембридж, Великобритания) существовала сеть (The Cambridge Ring), в потоковом протоколе которой (BSP) была реализована операция, известная как «повторное подключение». Если у вас было соединение BSP между A и B и другое соединение между B и C, тогда B мог бы повторно подключить соединения, чтобы A говорил напрямую с C. Ссылка: " Распределенная компьютерная система Кембриджа "от RM Нидхэм и А. Дж. Герберт (приложение C).

Я нигде не видел операции повторного подключения. В самом деле, если задуматься, требуется сложное трехстороннее рукопожатие для надежной реализации операции, подобной повторному подключению. В случае с BSP они этого не сделали ... по крайней мере, согласно описанию в Needham & Herbert.

22.11.2015
  • Я отправлю его через 90 минут, так как это мой предел ._. 22.11.2015
  • @Stephen C - это хороший пример проблемы XY. Ответ на конкретный вопрос ОП - нет. Но вариант использования, который заставил его задать вопрос вопрос почти наверняка как несколько хороших, выполнимых решений. 22.11.2015
  • @ paulsm4 - Это правда. Однако не было никаких подсказок относительно того, что это за вариант использования. И эти вопросы и ответы полезны сами по себе (ИМО) 22.11.2015
  • Новые материалы

    Угловая структура архитектуры
    Обратите внимание, что эта статья устарела, я решил создать новую с лучшей структурой и с учетом автономных компонентов: https://medium.com/@marekpanti/angular-standalone-architecture-b645edd0d54a..

    «Данные, которые большинство людей используют для обучения своих моделей искусственного интеллекта, поставляются со встроенным…
    Первоначально опубликовано HalkTalks: https://hacktown.com.br/blog/blog/os-dados-que-a-maioria-das-pessoas-usa-para-treinar-seus-modelos-de-inteligencia-artificial- ja-vem-com-um-vies-embutido/..

    Сильный ИИ против слабого ИИ: различия парадигм искусственного интеллекта
    В последние годы изучению и развитию искусственного интеллекта (ИИ) уделяется большое внимание и прогресс. Сильный ИИ и Слабый ИИ — две основные парадигмы в области искусственного интеллекта...

    Правильный способ добавить Firebase в ваш проект React с помощью React Hooks
    React + Firebase - это мощная комбинация для быстрого и безопасного создания приложений, от проверки концепции до массового производства. Раньше (знаете, несколько месяцев назад) добавление..

    Создайте API с помощью Python FastAPI
    Создание API с помощью Python становится очень простым при использовании пакета FastAPI. После установки и импорта вы можете создать приложение FastAPI и указать несколько конечных точек. Каждой..

    Веселье с прокси-сервером JavaScript
    Прокси-серверы JavaScript — это чистый сахар, если вы хотите создать некоторую общую логику в своих приложениях, чтобы облегчить себе жизнь. Вот один пример: Связь клиент-сервер Мы..

    Получить бесплатный хостинг для разработчиков | Разместите свой сайт за несколько шагов 🔥
    Статические веб-сайты — это веб-страницы с фиксированным содержанием и его постоянным содержанием. Но теперь статические сайты также обрабатывают динамические данные с помощью API и запросов...