Python FTP 到 iPad

5 投票
1 回答
737 浏览
提问于 2025-04-16 10:39

我在用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)来连接。

http://docs.python.org/library/ftplib.html

撰写回答