当我使用此方法从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.
}
这种方法有什么问题?有人澄清我。
答案 0 :(得分:1)
在Android模拟器上使用FTP有两个主要问题:
模拟器掌握主机上的特定端口(5554和5584之间)以访问互联网。
请参阅http://developer.android.com/guide/developing/tools/emulator.html
FTP在两个端口上通信。初始端口(模拟器正在使用的端口)和辅助数据通信端口(通常由FTP客户端和服务器定义)。
有关FTP工作原理的信息,请参阅http://www.troubleshootingnetworks.com/ftpinfo.html。
这意味着与FTP服务器的初始通信按照预期的方式工作,但是一旦您尝试向/从服务器传递数据,模拟器就无法与FTP服务器请求的端口通信,因为您的计算机没有知道如何处理该端口上的流量。请参阅上面的链接以更好地掌握FTP通信。
如果您想在Android上测试FTP,您需要拥有自己的互联网连接设备。
答案 1 :(得分:0)
粗略查看SimpleFTP example表示您需要使用不带ftp://
前缀的主机名。还要确保在清单中包含INTERNET权限。