基于FTP协议的文件共享系统的设计与实现
前言
1 项目分析
1.1 项目调研实现背景
有时我们需要一个文件服务器,用于文件共享、上传和下载,并且可以在不同平台之间进行文件共享,比如Windows系统和Linux系统,因此我们需要实现一个FTP服务器,以满足我们的文件共享需求,并配合于相应的客户端(leapftp)进行使用。
1.2 ftp是什么?
FTP(File Transfer Protocol,文件传输协议)是 TCP/IP 协议组中的协议之一。用于互联网双向传输,可以在服务器上下载文件,也可以从Windows计算机本地或Linux本地上传文件到FTP服务器的空间。
2 项目设计
2.1 工作原理
如图所示,当客户请求连接FTP连接时,会创建一条控制链接,通过控制链接,客户端与FTP服务器进行交互。然后创建一条数据链接用于传输数据。客户端TCP协议层根据用户命令给出的服务器IP地址,向服务器提供FTP服务的21端口(该端口是TCP协议层用来传输FTP命令的端口)发出主动建立连接的请求,服务器收到请求后,通过3次握手,就在进行FTP命令处理的用户协议解释器进程和服务器协议解释器进程之间建立一条TCP连接。
上图是主程序的整体框架,程序运行后,由于有些系统调用接口必须需要root权限才能使用,所以首先判断是否以root用户的权限启动服务【1】。如果不是root用户则提示用户重新提升权限后再启动 服务器,并退出程序。服务器正常启动后,首先进行初始化,包括初始化会话结构体,创建网络套接字。接着处于监听客户端连接请求的状态,如果客户端成功连接上服务器,创建子进程,让子进程去客户端的所有请求,父进程则返回等待客户端请求连接状态
总结
提示:这里对文章进行总结: 例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。
|