Python FTP 到 iPad
我在用Windows 7。
我用一个简单的Python脚本想连接我的iPad,但连接不上:
HOST = '192.168.1.122'
try:
f = ftplib.FTP(HOST)
except (socket.error, socket.gaierror), e:
MessageBox.Show('ERROR: cannot reach "%s"' % HOST)
return
try:
f.connect(HOST,2121)
f.login()
except ftplib.error_perm:
MessageBox.Show('ERROR: cannot login anonymously')
f.quit()
return
我遇到的错误是“getaddrinfo返回了一个空列表”和“无法连接...”的信息...我解决不了这个问题...
我尝试用好几个程序在iPad上进行FTP,但都没有成功。如果我通过DOS命令窗口或者使用FTP软件就能连接上。我也试过在我的电脑上用另一个FTP服务器,结果也能连接。
我必须使用2121端口,所以不能更改它。
有没有什么线索或者经验可以分享?
1 个回答
4
在做任何事情之前,你应该先看看文档:
class ftplib.FTP([host[, user[, passwd[, acct[, timeout]]]]]) 这个方法会返回一个新的FTP类的实例。当你提供了host时,它会自动调用connect(host)来连接服务器。如果你还提供了user,它会再调用login(user, passwd, acct)来登录(如果没有提供passwd和acct,默认是空字符串)。可选的timeout参数是用来设置连接操作的超时时间,单位是秒(如果不指定,就会使用全局的默认超时时间)。
所以,如果你写 f = ftplib.FTP(HOST),会失败,因为它会尝试连接标准端口(21),而不是2121。你应该先创建ftplib的实例,然后再用 f.connect(HOST, 2121)来连接。