FTP STOR命令,我如何知道是否所有数据都已发送?

标签 ftp ftp-server

我正在尝试构建一个简单的 FTP 服务器,但对于 STOR 命令,我不确定如何区分数据连接关闭是因为所有数据已发送,还是数据连接过早关闭。

在 RETR 命令中,我知道要发送的文件的大小,但在 STOR 命令中,我不知道应该接收多少字节。

如果数据连接提前关闭,FTP 服务器应该做什么?

最佳答案

FTP 服务器无法知道传输是否中断。这是该协议(protocol)的一个缺点。服务器仅存储它获得的字节数,如果出现网络问题,则由客户端恢复上传(通常通过向服务器询问远程文件大小,然后执行存储并跳过字节数)已保存)。

这种行为通常会导致设置中出现问题,因为服务器端进程想要对上传的文件采取操作,因为它永远无法知道上传何时完成。这通常是通过让客户端在上传完成后重命名文件来处理的。

关于FTP STOR命令,我如何知道是否所有数据都已发送?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14034041/

相关文章:

java - 如何正确关闭FTPClient FileStream

java - Apache FTPServer——限制像 'DELE' 这样的命令

java - 如何在 Spring 集成中将 XML JMS 消息发送到 FTP

php - 我在我的服务器上发现了这个奇怪的 PHP 文件,它似乎破坏了我们网站的 SEO。有人知道它有什么作用吗?

ftp - PHPStorm FTP 连接失败

ftp - 对 PASV 命令的 FTP 响应应该是什么

java - Apache ftpserver docker 容器

python - 实现 FTP 接口(interface)/协议(protocol)

c++ - FTP文件上传