通过android连接到FTP服务器时出现问题?

时间:2011-09-14 05:45:18

标签: android file-upload ftp

当我使用此方法从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.
}

这种方法有什么问题?有人澄清我。

2 个答案:

答案 0 :(得分:1)

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

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

    请参阅http://developer.android.com/guide/developing/tools/emulator.html

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

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

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

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

答案 1 :(得分:0)

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