【问题标题】:Problem when connecting to FTP server through android?通过android连接到FTP服务器时出现问题?
【发布时间】:2011-11-16 17:27:56
【问题描述】:

当我使用这种方法从 ddms 上传文件时,我有一个 UnknownHostException:

try {
SimpleFTP ftp = new SimpleFTP();

// Connect to an FTP server on port 21.
ftp.connect("ftp://*******", 21, "*****", "*****");

// Set binary mode.
ftp.bin();

// Change to a new working directory on the FTP server.
ftp.cwd("web");

// Upload some files.
ftp.stor(new File("data/data/com.android/file/contacts"));


// Quit from the FTP server.
ftp.disconnect();
}
catch (IOException e) {
// Jibble.
}

这种方法有什么问题?任何人都可以澄清我。

【问题讨论】:

  • 你应该包括 logcat
  • @David Olsson:如何包含 logcat。请告诉我方法。
  • 在终端中使用 adb logcat。或者 eclipse 中的 logcat 视图。

标签: android file-upload ftp


【解决方案1】:

在安卓模拟器上使用FTP有两个主要问题:

  1. 模拟器占用主机上的特定端口(5554 和 5584 之间)来访问互联网。

    见http://developer.android.com/guide/developing/tools/emulator.html

  2. FTP 在两个端口上进行通信。初始端口(模拟器使用的端口)和辅助数据通信端口(通常由 FTP 客户端和服务器定义)。

    有关 FTP 工作原理的信息,请参阅 http://www.troubleshootingnetworks.com/ftpinfo.html。

这意味着与 FTP 服务器的初始通信按预期方式进行,但是一旦您尝试将数据传递到服务器/从服务器传递数据,模拟器就无法与 FTP 服务器请求的端口通信,因为您的计算机没有知道如何处理该端口上的流量。请参阅上面的链接以更好地掌握 FTP 通信。

如果您想在 Android 上测试 FTP,您需要拥有一台自带互联网连接的设备。

【讨论】:

  • 完美! ! !这就是为什么我不使用模拟器上传我的图像的原因。现在我明白了。非常感谢这个答案!
  • 这个答案对新的 Android 模拟器版本仍然有效吗?提到的链接不再存在。请更新。
【解决方案2】:

粗略查看SimpleFTP example 建议您需要使用不带ftp:// 前缀的主机名。还要确保在清单中包含 INTERNET 权限。

【讨论】:

  • 是的,你是对的。如果我们在 ftp 地址中声明前缀。然后,它将不再起作用。谢谢。
猜你喜欢
  • 2020-05-25
  • 1970-01-01
  • 1970-01-01
  • 2020-08-12
  • 2014-04-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-11
相关资源
最近更新 更多