【问题标题】:FTP connection without proxy没有代理的 FTP 连接
【发布时间】:2015-04-15 07:18:50
【问题描述】:

我有一个系统,我们通过代理通过 FTP 传输发送文件。 现在我需要进行更改以使用或不使用代理发送文件。

我尝试创建一个FTPClient 连接,没有主机和端口值,也没有用户 ID 和密码。喜欢client = new FtpClient();

仅此一项就可以在没有代理的情况下发送文件?

我读到了Proxy.Type.DIRECT,不明白它的用法是否应该申请我的要求。

【问题讨论】:

  • 那是什么语言?那是什么FtpClient 类(什么库)?向我们展示您当前的代理代码。
  • 嗨@Martin Prikryl,它是用Java 语言编写的。FTP 客户端是一种使用FTP 协议将文件传输到远程计算机和从远程计算机传输文件的软件。广告:FTP 是最广泛使用的传输协议,用于通过 Internet 将文件从一台主机传输到另一台主机。 client = new FtpClient(proxy, Integer.parseInt(port)); client.login(username+"@"+host, password);
  • 1) 我知道什么是 FTP 客户端。我在问您使用的是什么 FTP 客户端库?阿帕奇公地? 2) 将您的代码包含在问题中(使用帖子下方的“编辑”链接)。

标签: java proxy ftp apache-commons-net


【解决方案1】:

从您的代码看来,您使用的是 FTP 代理(不是普通代理)。

client = new FtpClient(proxy, Integer.parseInt(port));  
client.login(username+"@"+host, password);

如果你想直接连接,连接到host,而不是proxy。另外我假设目标主机的实际用户名只是username。 FTP 代理使用username@host 格式的用户名来告诉它应该将连接转发到哪个主机。

client = new FtpClient(host, Integer.parseInt(port));  
client.login(username, password);

不确定端口。如果您的 FTP 代理使用非标准端口,您可能不应该使用 port,而是连接到标准 FTP 端口 21

【讨论】:

  • ,是的,正在使用 apache commons。我会尽量考虑你的建议。这里的端口最初默认设置为 80。所以我将包括相同的内容。
  • 你能解释一下是什么造成的不同
  • 已经提到过 if(port == null) port = "80";
  • FTP 服务器侦听端口 21。HTTP (web) 服务器使用 80。有时通过代理服务器。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-22
  • 1970-01-01
  • 1970-01-01
  • 2021-07-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多