我使用的是专有的编程语言,它没有内置的FTP
函数。因此,我正在使用sockets
。
sHandle := SocketOpen('ftp.stackoverflow.net', 21);
SocketReadString(sHandle, answer);
retW := SocketWriteString(sHandle, 'user user1673665' & CHR(13) & CHR(10));
SocketReadString(sHandle, answer);
retW := SocketWriteString(sHandle, 'pass !@#$%^&*' & CHR(13) & CHR(10));
SocketReadString(sHandle, answer);
retW := SocketWriteString(sHandle, 'cwd update' & CHR(13) & CHR(10));
SocketReadString(sHandle, answer);
retW := SocketWriteString(sHandle, 'retr update.txt' & CHR(13) & CHR(10));
SocketReadString(sHandle, answer);
SocketClose(sHandle);
这些是我从
FTP
服务器收到的答案:但是,为什么在
retr update.txt
之后出现此错误:我正在逐步调试代码。因此,响应时间应该不是问题。
最佳答案
RETR
命令必须至少在PASV
或PORT
之前,以建立数据连接。
请查阅RFC 959,尤其是“3.2。建立数据连接”部分
另请注意,FTP命令应以大写形式发送。
关于sockets - 使用FTP命令下载带有套接字的文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58288097/