c - 用 C 实现 FTP 服务器/客户端

标签 c sockets ftp network-programming ftp-server

我被要求完成一项需要实现 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/

相关文章:

c - 如何确定 va_arg 列表的结尾?

c - 从 "gets(*buffer)"获取 Int 时遇到问题

c - 未初始化的指针与 NULL 和 0

c# - 统一 : Live Video Streaming

sockets - 通过套接字发送图像

java - 使用java通过ftp连接后运行Unix命令

c - 长方形的面积万无一失

c - 如何区分同一套接字上的读写事件?

java - 将文件上传到 testcontainer FTP 服务器失败,连接后连接被拒绝

C# FTP 应用程序上传到本地目录