文章目录[隐藏]

易风软件库2月6日消息,网上有很多现成的FTP软件。但是...我们也想了解FTP的一些底层机构,所以。这个开源项目可能会在你学习FTP知识的时候帮到你。程序的界面看起来像FileZilla。虽然FileZilla很受欢迎,但也有一些bug。当我打开我的博客时,我总是有问题。我需要通过FTP连接我的服务器。发送文件,下载文件等等。因为。我决定编写自己的软件来处理所有的情况。FileZilla已经够好了。但不是我的。

背景

看看我们以前知道的。我们知道FTP是基于TCP的标准网络协议。用于将文件从一台主机传输到另一台主机。它是一个C/S架构。

FTP程序已经基于命令行。我们仍然通过cmd.exe连接FTP服务器。因为FTP确实可以通过命令操作。比如说。我们可以在命令行中使用“stor”命令来发送文件。为了完成这些恳求。FTP服务器需要保持运行,等待即将到来的客户端恳求。通过维基百科的解释,我们可以更好地理解FTP:

客户端计算机可以通过服务器的端口21与服务器通信。这叫做控制环节。它坚持在谈话中开诚布公。第一个链接的时间。称为数据链接,服务器可以向客户端开放20个端口(自动形式),建立数据路径,链接客户端传输数据。可能客户端打开了一个随机端口(主动形式)链接服务器传输数据。控制链路使用类似Telnet的协议,用于客户端和服务器之间的会话管理(命令、标识和密码)。。比如说。“RETR文件名”将从服务器下载文件。

一个完善的FTP文件传输需要建立两类链路,一类是下达文件传输的命令,称为控制链路,另一类是完成真正的文件传输,称为数据链路。

服务器通过三位ASCII数字形态码在控制链路上作出响应,例如包括可选的描述信息。比如说。“200”可能是“200 OK”,表示最后一个命令成功。数字代表数字,描述信息给出了一些澄清(比如“OK”),也许是需求的一些参数(比如要求账号存储文件),那么我们需要做什么呢?非常清楚。发送命令,接受“OK”响应,并发送数据。接受数据。结束了。但是首先,需求服务器已经准备好了。FTP服务器可以在自动和主动模式下运行。自动表单是基于服务器的链接,活动表单是同性恋朋友客户端链接。继续看。

在自动链接中,客户端向服务器发送自己的ip和端口。然后,服务器尝试链接到客户端,但会被拒绝,例如,由于防火墙的原因。我们都在windows上使用杀毒/内置防火墙。没错。所以我们来看看主动形式。

在活动链接中。服务器通过“PASV”命令向客户端发送自己的ip和端口。然后,客户端尝试通过此IP链接到服务器。这是非常有用的关于发送文件。当我们发送文件时。如你所说,优先使用“PASV”形式。多数同意。和FTP/HTTP一样,使用ASCII编码,因为全世界都有。所以我们将使用这种编码。您可能会丢失以下FTP命令列表

自动化和主动性都与服务器端有关。

3使用代码
现在我们准备写软件了。让我们写一些有用的代码。:)首先。我们“打开文件对话框”并将其集成到我们的表单中。

3.1资源管理器组件
我们需要一个资源管理器组件,它可以在软件界面中看到我们所有的文件。这样,我们可以选择将哪些文件发送到FTP服务器,并创建一个新的Windows窗体控件库(在下载包中提供)。

起初,它看起来像这样。首先添加一个树形视图、一些按钮和一个搜索功能。

树形视图。nodes . Clear();TreeNode nodeD = new TreeNode();nodeD。标签=环境。GetFolderPath(环境。special folder . Desktop);nodeD。Text = " DesktopnodeD。ImageIndex = 10nodeD。SelectedImageIndex = 10树形视图。nodes . Add(nodeD);
如上面的代码所示。我们需要添加一个主节点。我的文件。我的电脑等等。然后获取子目录。

您可以从下载包中看到完整的代码。我们还应该处理鼠标点击。

现在我们有了一个资源管理器。以及FTP和VS需要的一切。

首先,我们链接服务器。我们做什么呢

是的,我们需要一个套接字来链接到服务器,然后发送命令。
AppendText(rchLog," Command : " + msg + "\n ",Color。蓝色);Byte[] CommandBytes =编码。ASCII.GetBytes((msg + "\r\n ")。ToCharArray());FTPSocket。发送(CommandBytes,CommandBytes。长度,0);//读取响应read Response
我们向服务器发送命令。服务员用他自己的话回应。我们需要了解他。回复包括3个数字和一些解释。

结束了。现在我们可以下载,上传和重命名。可能被删了。

4 FTP命令列表
命令描述
在ABOR附加一个活动文件传输。
ACCT系统帐户信息
ADAT认证/安全数据
ALLO分配空间来接收文件。
APPE向服务器添加文件
AUTH认证/安全机制
CCC清除命令通道
CDUP转到父目录
CONF秘密维护司令部
CWD改变服务器上的任务目录。
DELE删除服务器上的指定文件。
ENC秘密维护通道
EPRT指定服务器应该链接的扩展地址和端口。
EPSV进入主动扩展形式。
FEAT丢失了服务器提供的函数列表
帮助转到指定的命令信息
郎去致辞了。
如果是文件名,它列出文件信息;如果是目录,它会列出文件。
LPRT指定了服务器应该链接的长地址和端口。
LPSV进入长期活跃状态。
MDTM去了最近修改文件的时间。
麦克风完好维护命令
MKD创作目录
MLSD列出了指定目录的内容。
MLST在命令行中列出了对象的准确信息。
模式传输形式(S=流形式,B=块形式,C=压缩形式)
NLST列出了指定目录的内容。
NOOP什么也不做,(虚拟包,来自常量链接)
OPTS选择一个功能选项。
传递验证密码
PASV进入活跃状态。
PBSZ保持缓冲区大小。
端口指定服务器应该链接到的地址和端口。
PROT数据通道维护级别
PWD显示未来任务目录。
退出加入从FTP服务器登录。
REIN重新初始化登录表单链接。
REST在指定点重新开始文件传送。
原始RETR转让文件
RMD删除服务器上的指定目录。
RNFR从旧标题重新命名
RNTO获得新头衔
站点将指定的命令发送到远程服务器。
大小变成文件大小
SMNT挂载指定的文件结构
STAT转到后一种形式
STOR将文件存储(复制)到服务器。
STOU将文件存储到服务器指定的文件中。
STRU设置结构(F=文件,R=记录,P=页面)
SYST转到服务器使用的操作系统。
类型传输格式(A=ASCII,E=EBCDIC,I=binary)
用户认证用户
XCUP跳转到未来任务路径的父目录。
XMKD新目录
XPWD进入未来任务目录。
XRMD删除目录

5转到代码列表
2xx–走向成功
4xx或5xx-无法进行
1xx或3xx–不正确或不完整的回复
第二位定义错误的类型。

x0z-语法-有一个语法错误。
X1z信息-信息征集
x2z–链路–澄清控制或数据链路有问题。
x3z-账号认证-登录可能是账号认证的问题。
x4z–未定义
x5z–文件系统–例如,服务器文件系统有问题。

总结:

以上就是今天所分享的内容了,更多行业知识、软件引荐、功能比照、工具测评请关注易风软件库。每天给大家带来更高效的企业服务软件,其中包括有微信,惠易购,赞聊,淘米购,叮咚盲盒,青蛙易购,支付宝,香蕉赶集,乐享购,淘盟铺,亲聊,探聊,诚智通,伶信,QQ,新易选,红包辅助,享乐好物,易民购,梦幻盲盒,苹果微信多开,微信分身,安卓微信多开,淘客购,旗语,点约,优品铺,创信等现如今热门社交软件,其中功能有秒抢,避雷,埋雷软件,扫尾,单透软件等一些红包强项外挂功能软件免费下载使用!