Использование FTP Proxy с apache commons-net - PullRequest
7 голосов
/ 09 июля 2009

Я хочу установить FTP-соединение, используя прокси-сервер с Apache commons-net.

Но, глядя на это Поддерживает ли FTPClient FTP-соединение через FTP-прокси-сервер? меня беспокоит.

Мне приходится вмешиваться в системные свойства и в документации Sun указывать, что «Если указано socksProxyHost , то все сокеты TCP будут использовать прокси-сервер SOCKS для установления соединения или его принятия». WTH? Все TCP сокеты? Как насчет моих подключений к базе данных? Или другие соединения FTP, которые я мог бы хотеть открыть в то же самое время, не используя прокси? Будут ли они все затронуты?

Есть ли другой способ сделать это, который не мешает остальной части моего приложения?

1 Ответ

7 голосов
/ 19 июля 2009

У вас есть несколько способов использования прокси в Java, особенно с версии 1.5.

  1. Использование свойств системы: быстро и эффективно, но с ограниченной гибкостью
    • Вы можете использовать прокси SOCKS для всех соединений TCP.
    • Вы также можете установить прокси для протокола, выполнимого для HTTP, FTP и HTTPS
    • Для обоих методов вы можете указать список хостов, которые не будут использовать прокси
  2. Использование класса java.net.Proxy (Java 1.5+) для установки (или нет) Proxy на Connection
  3. Реализация java.net.ProxySelector (то же самое), которая будет определять Proxy для каждого Connection в соответствии с вашими критериями

См. подробный технический комментарий Sun по сетям и прокси .

...