Я разрабатываю приложение Java, которое будет прослушивать локальный порт для связи с другой программой. Обычно он будет слушать, скажем 127.0.0.1:8808.Java get REAL loopback address программно
Один из моих клиентов сообщает, что они используют среду Citrix, это похоже на среду удаленного рабочего стола MS, несколько пользователей могут одновременно войти в один и тот же компьютер.
Как вы, возможно, знаете, пользователи терминального сервера имеют один обратный адрес, это означает, что только первый пользователь, запускающий мое приложение, может успешно привязываться к 127.0.0.1:8808, другие получат ошибку конфликта ресурсов.
Мой клиент попытается исправить это, включив «виртуальный loopback», этот параметр может автоматически назначать разные запросы обратной связи для разных пользователей, каждый пользователь получит 127.0.0.2-127.0.0.255 в качестве обратного адреса вместо всех 127.0.0.1 , которые звучат как идеальное решение для этой ситуации.
Тест показывает, что виртуальный loopback хорошо работает для других программ, таких как chrome и IE, средство TCPView показывает, что любое соединение с localhost перенаправляется на 127.0.0.2, кроме моей программы.
Я думаю, проблема может быть связана с тем, что я использую фиксированный адрес 127.0.0.1 в коде, но у меня нет среды для подтверждения. Поэтому мой вопрос здесь: есть ли какой-либо метод Java, который я могу использовать для получения REAL loopback-адреса в такой ситуации, поэтому я могу привязываться к правильному адресу?
Заранее благодарен!
127.0.0.1 реальный цикл обратный адрес. Вы можете использовать другие адреса в качестве обратной связи, но это тот, который используется большинством людей. –
Проводили ли вы какое-то исследование; например http://support.citrix.com/article/CTX209237 – GhostCat
@GhostCat Спасибо, это может быть основной причиной, я попрошу у моего клиента попробовать. –