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. 红框内的所有选项全部勾选点击,点击确定即可。
相关推荐
Hacker_LaoYi1 小时前
【漏洞分析】DDOS攻防分析(四)——TCP篇
网络·tcp/ip·ddos
爱吃水果蝙蝠汤1 小时前
DATACOM-IP单播路由(BGP)-复习-实验
网络·网络协议·tcp/ip
zhou周大哥2 小时前
linux 安装 ffmpeg 视频转换
linux·运维·服务器
Sun_12_22 小时前
SQL注入(SQL lnjection Base)21
网络·数据库
loong_XL2 小时前
服务器ip:port服务用nginx 域名代理
服务器·tcp/ip·nginx
夕泠爱吃糖2 小时前
C++中如何实现序列化和反序列化?
服务器·数据库·c++
网络安全Jack3 小时前
网络安全概论——身份认证
网络·数据库·web安全
易我数据恢复大师3 小时前
如何彻底删除电脑数据以防止隐私泄露
网络·电脑·数据删除·擦除
the丶only3 小时前
单点登录平台Casdoor搭建与使用,集成gitlab同步创建删除账号
linux·运维·服务器·docker·gitlab