C语言实现 FTP 服务器

C语言实现 FTP 服务器

项目简介:本项目使用 C 语言实现了支持 list,get <filename>,quit 等命令的 FTP 服务器。通过本项目的学习,可以更加深入的理解套接字编程模型,并且了解应用层协议(FTP)如何在套接字基础上定义。

本项目教程由 bof 发布在实验楼,完整教程及在线练习地址:C语言实现 FTP 服务器

一、简介

FTP 是一种标准协议,用于将一台计算机上的文件通过 Internet 复制到另一台计算机上。本实验根据 FTP 协议,用 C 实现了一个 FTP 服务器。通过该实验的学习,可以了解到 FTP 协议机制,更深入的理解 Linux 网络编程。

1.1 知识点

  • FTP 协议
  • Linux 系统编程
  • Linux 套接字网络编程

1.2 效果截图

  • 运行服务器程序(工作在8080端口)
  • 运行客户端程序
  • 输入命令 list:
  • 输入命令 get:
  • 检查是否下载成功:

可以看出来文件 ftserve 下载到本地。

1.3 程序框架

1.4 整个项目的组织结构

  • client 文件夹保存的是客户端程序
  • common 文件夹保存的是用于通信的通用程序
  • server 文件夹保存的是服务器程序,本实验重点是服务器端程序

目录布局如下:

ftp/
    client/
        ftclient.c
        ftclient.h
        makefile
    common/
        common.c
        common.h
    server/
        ftserve.c
        ftserve.h
        makefile
        .auth

二、FTP 协议

2.1 FTP 概念

FTP(File Transfer Protocol)协议,中文名:文件传输协议。是用于在网络上进行文件传输的一套标准协议。它属于网络传输协议的应用层。FTP服务一般运行在20和21两个端口。端口20用于在客户端和服务器之间传输数据流,而端口21用于传输控制流,并且是命令通向ftp服务器的入口。

2.2 FTP 实现的目标

  1. 促进文件的共享(计算机程序或数据)
  2. 鼓励间接或者隐式的使用远程计算机
  3. 向用户屏蔽不同主机中各种文件存储系统(File system)的细节
  4. 可靠和高效的传输数据

本项目的完整代码、详细步骤,可以在实验楼查看并在线完成:C语言实现 FTP 服务器

微信关注公众号[实验楼],手机查看海量项目教程。

编辑于 2016-11-04 09:52