C#使用ftp进行文件上传和下载功能(一)

一.FTP概述

FTP (File Transfer Protocol,文件传输协议)是典型的C/S架构的应用层协议,需要由服务端软件、客户端软件两个部分共同实现文件传输功能。FTP客户端和服务器之间的连接是可靠的,面向连接的,为数据的传输提供了可靠的保证。

FTP服务器默认使用TCP协议的20、21端口与客户端进行通信

20端口用于建立数据连接,并传输文件数据,20端口只有在传输数据时才会打开

21端口用于建立控制连接,并传输FTP控制命令

FTP工作原理

FTP有两种工作模式,一种方式叫做Standard (也就是Active, 主动方式),一种是Passive(也就是PASV,被动方式)。

主动模式

FTP客户端首先和FTP Server 的TCP21端口建立连接,通过这个通道发送命令,客户端需要接收数据的时候在这个通道上发送PORT命令。PORT命令包含了客户端用什么端口接收数据。在传送数据的时候,服务器端通过自己的TCP 20端口发送数据。FTP server必须和客户端建立一个新的连接用来传送数据。

被动模式

在建立控制通道的时候和Standard模式类似,当客户端通过这个通道发送PASV命令的时候,FTP server打开一个位于1024和5000之间的随机高位端口并且通知客户端在这个端口上传送数据的请求,然后FTP server将通过这个端口进行数据的传送,这个时候FTP server不再需要建立一个新的和客户端之间的连接。

二、FTP创建

1.windows系统直接右键此电脑(我的电脑)-->右键管理,进入计算机管理窗口;

2.点击服务与应用程序-->点击IIS-->打开本地IIS管理器-->网站-->右键添加FTP服务站点;

3.进入添加FTP站点界面,输入FTP站点名称,物理路径;

4.填写好FTP站点名称,设置完FTP内容目录后,点击确定按钮,再点击下一步;

5.点击下一步后,先不要急着继续,查一下电脑的IP地址 打开命令框cmd ;

6.输入命令ipconfig 回车,可以看到自己电脑的IP地址 ;

7.回到FTP站点添加向导,设置绑定和SSL。IP地址栏输入刚刚查到的IP地址,端口保持为21不变,启用虚拟主机名项可以不必勾选,自动启动FTP站点可以勾选,SSL可以选择无SSL,操作完成后点击下一步;

8.接下来FTP站点添加向导将要求填写身份验证和授权信息,勾选身份验证下的匿名和基本两项前的复选框,允许访问项设置为所有用户,勾选读取和写入权限前的复选框,点击完成;

9.FTP站点已经创建成功并正常运行 。

上面的操作是默认Windows功能中的IIS服务和FTP是全部开启的,如果没有全部开启,在执行上面操作的时候;先开启IIS和FTP的所有功能,具体步骤如下:

1.进入控制面板:

2.点击程序和功能;

3.选择启用或关闭Windows功能;

  1. 红框内的所有选项全部勾选点击,点击确定即可。
相关推荐
m0_6948455739 分钟前
服务器如何配置防火墙规则开放/关闭端口?
linux·服务器·安全·云计算
阿巴~阿巴~1 小时前
Linux基本命令篇 —— alias命令
linux·服务器·bash
xkroy2 小时前
网络协议概念与应用层
网络
筏.k2 小时前
C++ 网络编程(14) asio多线程模型IOThreadPool
网络·c++·架构
好名字更能让你们记住我2 小时前
Linux多线程(十二)之【生产者消费者模型】
linux·运维·服务器·jvm·windows·centos
门思科技2 小时前
设计可靠 LoRaWAN 设备时需要考虑的关键能力
运维·服务器·网络·嵌入式硬件·物联网
小锋学长生活大爆炸2 小时前
【知识】RPC和gRPC
服务器·网络协议·rpc
小高不会迪斯科2 小时前
MIT 6.824学习心得(2) 浅谈多线程和RPC
网络·网络协议·rpc
学习编程的gas2 小时前
Linux开发工具——gcc/g++
linux·运维·服务器
大大。3 小时前
van-tabbar-item选中active数据变了,图标没变
java·服务器·前端