7

我想使用带有 Apache 的 commons-net 的代理服务器建立一个 FTP 连接。

但是看看这个FTPClient 是否支持通过 FTP 代理服务器进行 FTP 连接?让我担心。

我必须干预系统属性,Sun 文档声明“如果指定了socksProxyHost,那么所有 TCP 套接字都将使用 SOCKS 代理服务器建立连接或接受一个连接。”
什么?所有 TCP 套接字?我的数据库连接呢?或者我可能想在不使用代理的情况下同时打开其他 FTP 连接?他们都会受到影响吗?

有没有其他方法可以不影响我的应用程序的其余部分?

4

1 回答 1

7

您有多种在 Java 中使用代理的方法,尤其是从 1.5 版开始。

  1. 使用系统属性:快速而强大但灵活性有限
    • 您可以对所有 TCP 连接使用 SOCKS 代理。
    • 您还可以为每个协议设置一个代理,可用于 HTTP、FTP 和 HTTPS
    • 对于这两种方法,您都可以指定不使用代理的主机列表
  2. 使用类(Java 1.5+ java.net.Proxy)设置(或不设置)一个ProxyConnection
  3. 实现一个java.net.ProxySelector(同上),它将根据您的标准Proxy为每个确定一个Connection

请参阅有关网络和代理的详细 Sun 技术说明

于 2009-07-19T18:57:57.007 回答