我被要求完成一项需要实现 FTP 协议(protocol)的作业。我已阅读 RFC959 给出的文档.
我对一些实现细节感到困惑
1)如果需要传输文件,可以使用什么函数。可以将简单的 send() 函数用于非文本文件吗?
2)是否可以获得一个很好的教程,讲述实现模式和文件结构,并指定这是必不可少的。
希望尽快得到答复。
最佳答案
FTP 通过普通 TCP 连接传输文件,您可以用它传输任何类型的文件。文本文件和二进制文件没有区别,它们都只是字节序列。
对于文件传输就足够了,打开一个连接,多次调用write
函数,直到整个文件传输完毕(查看write
的返回值即可知道如何它发送了许多字节)。
FTP 协议(protocol)的其余部分是基于文本的,并发送到不同的端口。
有一个good tutorial直接通过netcat使用FTP ,这对于理解事物的工作原理很有用。了解active and passive mode也可能很有用,因为您将至少实现其中之一。
此外,使用wireshark跟踪TCP流并查看您正在发送/接收的数据,这在调试中非常有用。
关于c - 用 C 实现 FTP 服务器/客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21525957/