我正在尝试构建一个简单的 FTP 服务器,但对于 STOR 命令,我不确定如何区分数据连接关闭是因为所有数据已发送,还是数据连接过早关闭。
在 RETR 命令中,我知道要发送的文件的大小,但在 STOR 命令中,我不知道应该接收多少字节。
如果数据连接提前关闭,FTP 服务器应该做什么?
最佳答案
FTP 服务器无法知道传输是否中断。这是该协议(protocol)的一个缺点。服务器仅存储它获得的字节数,如果出现网络问题,则由客户端恢复上传(通常通过向服务器询问远程文件大小,然后执行存储并跳过字节数)已保存)。
这种行为通常会导致设置中出现问题,因为服务器端进程想要对上传的文件采取操作,因为它永远无法知道上传何时完成。这通常是通过让客户端在上传完成后重命名文件来处理的。
关于FTP STOR命令,我如何知道是否所有数据都已发送?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14034041/