C语言实现 FTP 服务器

brownfish 发布于1年前 阅读2408次
0 条评论

 

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端口)

C语言实现 FTP 服务器
  • 运行客户端程序

C语言实现 FTP 服务器
  • 输入命令 list:

C语言实现 FTP 服务器
  • 输入命令 get:

C语言实现 FTP 服务器
  • 检查是否下载成功:

C语言实现 FTP 服务器

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

1.3 程序框架

C语言实现 FTP 服务器

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 服务器  

C语言实现 FTP 服务器
需要 登录 后回复方可回复, 如果你还没有账号你可以 注册 一个帐号。