gpt4 book ai didi

sockets - 使用 FTP 命令通过套接字下载文件

转载 作者:行者123 更新时间:2023-12-02 08:00:12 24 4
gpt4 key购买 nike

我使用的是专有编程语言,它没有内置 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 服务器收到的答案:

220-Welcome to stackoverflow FTP
220 Unauthorized access is illegal!
331 Password required for user1673665
230 Logged on
250 CWD successful. "/update" is current directory.

但是为什么我在retr update.txt之后会得到这个错误:

503 Bad sequence of commands.

我正在逐步调试代码。因此响应时间应该不是问题。

最佳答案

RETR 命令之前必须至少有 PASVPORT 才能设置数据连接。

咨询RFC 959 ,特别是 “3.2. 建立数据连接”

部分

使用 PASV 时,您必须打开服务器在 227 响应中返回的端口的连接。


另请注意,FTP 命令应以大写形式发送。

关于sockets - 使用 FTP 命令通过套接字下载文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58288097/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com