趣文网 > 作文大全

FTP服务器的实现(C语言)

2020-12-02 16:05:01
相关推荐

我们在之前的文章中,曾经对FTP文件传输协议做过详细的介绍。本章,我们对如何用C语言实现FTP服务器做一个简单的介绍(文末附源码链接)。

概述

FTP文件传输协议,是因特网上使用得最广泛的文件传输协议。FTP提供交互式的访问,允许客户指明文件的格式与类型,并允许文件具有存储权限。FTP屏蔽了不同操作系统之前的细节,因此适合在异构网络中任意计算机之间传送文件。

FTP的基本工作原理

FTP使用C/S方式,一个FTP服务器可以为多个客户进程提供服务,FTP服务器进程由两大部分组成:一个主进程,负责接收新的请求;另外有若干个从属进程,负责处理单个请求。

主进程的工作步骤如下:

打开端口号(一般为21),使客户端能通过此端口号访问;等待客户端发出连接请求;启动从属进程来处理客户进程发来的请求。从属进程对客户进程的请求处理完后即终止,从属进程在运行期间可能会根据需要另外创建其他一些进程。回到等待状态,继续等待其他客户进程发来的连接请求。主进程和从属进程是并发进行的。在进行文件传输时,FTP的客户和服务器之间要建立两个并行的TCP连接:“控制连接”和“数据连接”。控制连接在整个会话期间一直保持打开,FTP客户所发出的传送请求,通过控制连接发送给服务器端的控制进程,但是控制连接并不会用于传输数据。实际传输文件的是“数据连接”。服务器端的控制进程在接收到FTP客户发送来的文件传输请求后,就会创建“数据传送进程”和“数据连接”,用来连接客户端和服务器端的数据传送进程。由于FTP使用了一个分离的控制连接,因此FTP的控制信息是带外控制的。

当客户进程向服务器进程发出建立连接请求时,通过服务器端口号21请求连接,同时会告诉服务器进程自己用于建立数据传送连接的另一个端口号。服务器一般使用端口号20同客户进程建立数据连接,由于FTP使用两个不同的端口号,所以数据连接和控制连接不会发生混乱。

FTP使用的两个FTP连接

综上所述,我们可以画出基本的算法流程图

代码实现:

首先是对命令的定义

控制端口的定义

主函数及其他功能的具体实现我们这里就不再赘述了,有兴趣的朋友可以关注并私信我,私信发送文字“FTP服务器源码”即可获得FTP服务器源码链接。

想了解更多精彩内容,快来关注哞哞哞的IT圈

阅读剩余内容
网友评论
相关内容
延伸阅读
小编推荐

大家都在看

大公鸡作文 我的想法作文 关于知识的作文 假期作文600字 自我成长作文 美好瞬间作文 高一作文素材 发烧作文 启航作文 关于叙事的作文 两千字作文 责任担当的作文 400字作文写人 小作文150字 开心的一天的作文 山东作文题目 野餐英语作文 动物作文500字 移步换景作文 停电作文 英语我的一天作文 靠自己作文 春节高中作文 谦虚的作文 关于少年的作文 写感恩的作文 写劳动的作文 有关文化的作文 读书作文800字 快乐假期作文