在C中实现FTP服务器/客户端

时间:2014-02-03 11:18:36

标签: c sockets ftp network-programming ftp-server

我被要求进行需要实施FTP协议的作业。我查看了RFC959给出的文件。

我对一些实施细节感到困惑

1)如果需要传输文件,可以使用什么功能。可以将一个简单的send()函数用于非文本文件。

2)是否有可能获得一个好的教程,讲述实现模式和文件结构,并指定哪些是必要的。

希望尽快得到回复。

2 个答案:

答案 0 :(得分:2)

FTP通过普通的TCP连接传输文件,您可以使用它传输任何类型的文件。文本文件和二进制文件之间没有区别,它们都只是字节序列。

对于文件传输足以打开连接并多次调用write函数,直到传输整个文件(检查write的返回值以了解它发送了多少字节)。

FTP协议的其余部分是基于文本的,并被发送到不同的端口。

通过good tutorial直接使用FTP有netcat,这对了解事情的运作方式非常有用。理解active and passive mode也很有用,因为您要实现至少其中一个。

此外,使用wireshark跟踪TCP流并查看您正在发送/接收的数据,它在调试时非常有用。

答案 1 :(得分:1)

协议实现不会为您提供文件结构。该协议用于定义一些规则和状态。

dev / prog部分取决于你。您只需要尊重FTP协议即可获得规范化以及与其他客户端/服务器的兼容性。

祝你好运