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. 红框内的所有选项全部勾选点击,点击确定即可。
相关推荐
速盾cdn17 分钟前
速盾:CDN是否支持屏蔽IP?
网络·网络协议·tcp/ip
yaoxin52112318 分钟前
第二十七章 TCP 客户端 服务器通信 - 连接管理
服务器·网络·tcp/ip
内核程序员kevin20 分钟前
TCP Listen 队列详解与优化指南
linux·网络·tcp/ip
PersistJiao2 小时前
Spark 分布式计算中网络传输和序列化的关系(一)
大数据·网络·spark
黑客Ash4 小时前
【D01】网络安全概论
网络·安全·web安全·php
->yjy4 小时前
计算机网络(第一章)
网络·计算机网络·php
sinat_384241094 小时前
使用 npm 安装 Electron 作为开发依赖
服务器
摘星星ʕ•̫͡•ʔ6 小时前
计算机网络 第三章:数据链路层(关于争用期的超详细内容)
网络·计算机网络
Kkooe6 小时前
GitLab|数据迁移
运维·服务器·git