ftp协议解析与实现[1]

ftp协议解析与实现[1]

ID:18489402

大小:69.00 KB

页数:9页

时间:2018-09-18

ftp协议解析与实现[1]_第1页
ftp协议解析与实现[1]_第2页
ftp协议解析与实现[1]_第3页
ftp协议解析与实现[1]_第4页
ftp协议解析与实现[1]_第5页
资源描述:

《ftp协议解析与实现[1]》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、FTP协议解析与实现关键词:FTP、协议解析、visualC++简述:      在学习FTP协议偶有感悟,于是想起了写一篇文章来总结一下自己学习的东西。同时也想与读者共同分享自己的劳动成果,也算是抛砖引玉吧。错误和不当之处欢迎指正。联系方式:lihualoveyou1983@163.com。本文主要对程序员关心的一些技术进行了总结。并结合一个实例来进一步说明。本文涉及内容主要是FTP原理、VC编程、Socket等。正文:一、FTP通信原理简述1.1FTP简介      FTP是基于TCP/IP协议的一个应用协议。主要实现在不同的计算机之间的

2、数据共享。FTP采用的是C/S模式。客户既可以下载文件也可以上传文件。当然,FTP给用户一定的权限。用户只能在权限下使用。目前,FTP的服务器种类很多,比如常用的SERV-U,客户端程序也很多,比如:CuteFTP。WINDOWS也提供了一个FTP客户程序。它们都根据相同的协议标准来设计的,具体协议内容可参考RFC文档。 SERV-U工作界面 windows提供的客户端1.2 FTP工作原理      FTP工作原理与其它的应用协议有些不同。它是用两个端口进行通信的。一个端口用于命令交互。这个端口在用户连接之后一直保持;而另一个端口只是在数据

3、传时打开(比如:上传文件,下载文件,获取服务端文件列表),在数据传输时有两种不同的模式,一是用户开通这个数据端口,这种模式叫做主动模式;二是服务器提供一个接口,这个模式叫被动模式。 FTP原理图1.3用户登录      FTP服务器提供了用户的访问权限,有的服务器可以匿名登录,有的服务器要求用户使用密码登录。在每一个与登录有关的命令时,服务器都会有一个返回信息。      下面显示了一个登录过程: 1.4数据传输             在FTP中可以定义数据的传输格式,比如:二进制(进行图象和应用程序传输这种格式)。下面是一个传输过程: 二

4、、FTP命令在WINDOWS中提供的命令不是FTP的标准命令。有些命令是许多命令的合集。而FTP标准命令,每发送一个,服务器就会做出一个相应的动作,并把认证信息发送给用户。 具体的命令可以参照有关的资料三、实例在这里我们用一个FTP客户端来说明以上的知识。这里面主要是一个封装的类。 CFTPClient这个类实现的文件的上传与下载并能获得服务端文件的信息。1.1CFTPClient类 classCFTPClient{//成员变量private:      CSocket*m_pSocket;      CArchive*m_pRxarch; 

5、     CArchive*m_pTxarch;      CSocketFile*m_psfSokFile;       CStringm_strMsg;//服务器发回的消息       CStringm_fc;       CftpclientDlg *m_pWnd;//用于对窗口的操作      CByteArraym_btBuf;//成员函数public:      CFTPClient(void);      ~CFTPClient(void);       //发送命令到服务器      BOOLFtpCommand(CStrin

6、gstrCommand);      //登录到FTP服务器,这个函数只支持在没有防火墙的时候      BOOLLogOnToserver(CStringstrHostname,intnHostPort,CStringstrUserName,CStringstrPassword);      //退出服务器      voidLogOffServer();       //上传下载文件      BOOLMoveFile(CStringstrRemoteFile,CStringstrLocalFile,BOOLbPasv,BOOLbGet)

7、;       //列出文件列表      BOOLList();      voidProcessList();            //获取一行信息      BOOLGetLine(intndx,CString&strLine);       //发送数据      BOOLWriteStr(CStringstrOutPut);      //接收数据      BOOLReadStr();        //设置窗口      voidSetWnd(CftpclientDlg *pWnd);      //发送信息      voi

8、dSetMessage(CStringstrMsg);      //获取文件信息      BOOLGetFtpFileInfo(intndx,FTP_FILE_

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。