文件传输协议的(C语言)实现,使用了socket实现

课程设计:FTP的设计与实现

一、目的

Internet提供了很多类型的网络服务,这些服务实际上都是应用层的服务。FTP服务是基于TCP协议的网络服务。

文件传送是各种计算机网络都实现的基本功能,文件传送协议是一种最基本的应用层协议。通过完成一个文件传送协议FTP的实现,学会利用已有网络环境设计并实现简单应用层协议,掌握TCP/IP网络应用程序基本的设计方法和实现技巧。

二、内容和要求

每两人一组,分别实现FTP协议客户端程序和服务器程序。

客户端程序具有文件列表、下载文件、上传文件等常用功能。服务器程序支持改变工作目录、文件列表、下载文件等常用的服务。

因为FTP协议比较复杂,为了简单起见,客户端只实现FTP客户端协议的一个子集,总的来说有以下几个功能:

连接到指定的FTP服务器; 断开和主机的连接; 进入子目录; 退出子目录; 列出服务器当前目录下的所有文件 从服务器下载指定的文件到本地(可以同时指定多个文件连续下载) 从本地上传指定的文件到服务器

实现以上几个功能时会涉及到下面的几个FTP命令:

USER username PASS password CWD directory-name PORT host-port TYPE A or I RETR filename

基于tcp文件传输协议C语言,文件传输协议的(C语言)实现相关推荐

  1. Linux网络编程——基于tcp/ip的模拟聊天(文件传输)工具

    开发平台:Linux 开发工具:Ubuntu, sourceInsight4.0 项目介绍: 本项目基于TCP/IP协议创建一个网络通信系统,可以实现客户之间的聊天通信以及文件传输,同时利用进程实现多 ...

  2. TCP/IP协议和工业以太网传输控制方法 及通信模式比较1

    TCP/IP协议 Transmission Control Protocol/Internet Protocol的简写,中译名为传输控制协议/因特网互联协议,又名网络通讯协议,是Internet最基本 ...

  3. linux tcp文件分包_在Linux下基于TCP协议的文件传输程序.

    [设计目的] 通过 Linux C 编程,设计一个基于 TCP/IP 的文件传输系统,实现网络文件的收发 [设计环境] Ubuntu 12.04 [设计方案] ( 1 )文件读写 任意文件都可以二进制 ...

  4. Qt网络编程小项目-基于Tcp协议的文件传输项目

    目录 项目描述 Qt下Tcp服务器端和客户端流程: 具体流程: 客户端: 服务器端: 源码: 服务器端: 服务器头文件: 服务器源文件: 服务器端ui 客户端: 客户端头文件: 客户端源文件: 客户端 ...

  5. 基于TCP的大文件传输c语言项目

    文章目录 前言:功能实现 tcp文件传输的基本过程: 1.用户登录 1.1创建数据库 2.文件普通下载和上传的实现: 2.1 普通下载 2.2 普通上传 2.3 文件秒上传的实现 2.断点下载和断点上 ...

  6. 项目实战:基于 TCP 的局域网内高性能文件传输系统设计与实现

    本项目开发基于 Red Hat Enterprise Linux(RHEL) 6.3 平台 ,通过本项目大家会深入理解下述内容: Socket 网络编程技术 基于TCP/IP 协议的网络编程技术 基于 ...

  7. Linux下基于TCP的简易文件传输(socket编程)

    Linux下基于TCP的简易文件传输(socket编程) OSI和TCP/IP: 关于TCP/IP协议 关于TCP协议 TCP编程的一般步骤[^2] TCP文件传输实现 功能概述 服务器编程 客户端编 ...

  8. 网络编程应用:基于TCP协议【实现文件上传】--练习

    要求: 基于TCP协议实现一个向服务器端上传文件的功能 客户端代码: package Homework2;import java.io.File; import java.io.FileInputSt ...

  9. python网络通信中cs架构_python3基于TCP实现CS架构文件传输

    本文实例为大家分享了python3实现CS架构文件传输的具体代码,供大家参考,具体内容如下 1.目标: 基于tcp实现CS架构的文件传输 指令列表:(1)get:从服务器端下载文件 (2)put:向服 ...

  10. Java 基于TCP的socket实现文件传输

    Java 基于TCP的socket实现文件传输 基于TCP的socket结合java的io流 实现客户端与服务器之间的文件传输 Socket 套接字(socket)是一个抽象层,应用程序可以通过它发送 ...

最新文章

  1. 20165328 预备作业3 Linux安装及命令
  2. 爱我别走:产品大改版时,如何避免用户流失?
  3. Silverlight 用DependencyProperty 自定义ImageButton控件 定义属性
  4. oracle_sid只能有一个吗_第一次考教资!这些问题你都了解了吗?
  5. Bitset 用法(STL)
  6. python3-pandas DataFrame 索引、bool索引、pandas 字符串方法
  7. W3C近期要闻:W3C战略重点报告新版发布
  8. 40张图揭秘,「键入网址发生了什么」
  9. 前端 HTML 获取自定义标签tag 的值方法
  10. Ecology 查询某人所有流程待办事项
  11. CRS-1714:Unable to discover any voting files
  12. matlab反拉氏变换,matlab拉普拉斯变换.doc
  13. LS-DYNA 学习总结与感悟 以EM模块为主
  14. python解决中文显示问题Glyph 24179 (\N{CJK UNIFIED IDEOGRAPH-5E73}) missing from current font. func(*args)
  15. 对链表进行插入排序。从第一个元素开始,该链表可以被认为已经部分排序。每次迭代时,从输入数据中移除一个元素,并原地将其插入到已排好序的链表中。
  16. ThinkPad产品进入BIOS的方法
  17. 自然语言处理和编译器的对比
  18. freemarker ftl模板语法和指令
  19. java读取文件服务器文件,java读取远程服务器文件
  20. 安全存储,ARM HUK

热门文章

  1. 第八章-分析句子结构
  2. 为什么要用 Lightly 在线 IDE?
  3. LaTex 带边框逻辑清晰的伪代码
  4. linux postgresql 创建数据库,第 23 课 PostgreSQL 创建自己的数据库、模式、用户
  5. Post man 使用教程
  6. 百度手写文字识别教程
  7. JavaScript验证手机号码、电子邮箱格式
  8. 男人,得有足够征服女人的本钱
  9. spssχ2检验_医学统计中常用的χ2检验在SPSS软件中的实现途径
  10. android 时钟动态图标,安卓 8.1 Launcher3实现动态指针时钟功能