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. 红框内的所有选项全部勾选点击,点击确定即可。
相关推荐
liuyao_xianhui37 分钟前
Linux_基本指令1
linux·运维·服务器
liliangcsdn2 小时前
LLM时代基于unstructured解析非结构化pdf
linux·服务器·数据分析
hello_2502 小时前
动手模拟docker网络-bridge模式
网络·docker·桥接模式
武文斌773 小时前
项目学习总结:LVGL图形参数动态变化、开发板的GDB调试、sqlite3移植、MQTT协议、心跳包
linux·开发语言·网络·arm开发·数据库·嵌入式硬件·学习
爱吃喵的鲤鱼3 小时前
仿mudou——Connection模块(连接管理)
linux·运维·服务器·开发语言·网络·c++
爱吃小胖橘3 小时前
Unity网络开发--超文本传输协议Http(1)
开发语言·网络·网络协议·http·c#·游戏引擎
郝学胜-神的一滴3 小时前
使用Linux的read和write系统函数操作文件
linux·服务器·开发语言·数据库·c++·程序人生·软件工程
萧鼎3 小时前
Python schedule 库全解析:从任务调度到自动化执行的完整指南
网络·python·自动化
pu_taoc4 小时前
深入剖析:基于epoll与主从Reactor模型的高性能服务器设计与实现
服务器·c语言·c++·vscode
7哥♡ۣۖᝰꫛꫀꪝۣℋ5 小时前
网络层--数据链路层
网络·tcp/ip·智能路由器