我被要求完成一项需要实现 FTP 协议的任务。我已经阅读了RFC959给出的文档。
我对一些实现细节感到困惑
1)如果需要传输文件,可以使用什么功能。可以将简单的 send() 函数用于非文本文件。
2)是否有可能获得一个关于实现模式和文件结构的好教程,并指定哪些是必不可少的。
希望尽快得到答复。
我被要求完成一项需要实现 FTP 协议的任务。我已经阅读了RFC959给出的文档。
我对一些实现细节感到困惑
1)如果需要传输文件,可以使用什么功能。可以将简单的 send() 函数用于非文本文件。
2)是否有可能获得一个关于实现模式和文件结构的好教程,并指定哪些是必不可少的。
希望尽快得到答复。
FTP 通过普通的 TCP 连接传输文件,您可以使用它传输任何类型的文件。文本文件和二进制文件没有区别,它们都只是字节序列。
对于文件传输,打开一个连接并write
多次调用该函数就足够了,直到整个文件被传输(检查返回值write
以了解它发送了多少字节)。
FTP 协议的其余部分是基于文本的,并被发送到不同的端口。
有一个关于直接通过netcat使用 FTP 的很好的教程,这对于理解事情是如何工作的很有用。了解主动和被动模式也很有用,因为您至少要实现其中一个。
此外,使用wireshark 跟踪TCP 流并查看您正在发送/接收的数据,这在调试中非常有用。
协议实现不会给你一个文件结构。协议在这里定义一些规则和状态。
dev/prog 部分由你决定。您只需要尊重 FTP 协议即可获得规范化以及与其他客户端/服务器的兼容性。
此致