关于vc实现ftp编程

关于vc实现ftp编程

ID:41032671

大小:57.50 KB

页数:14页

时间:2019-08-14

关于vc实现ftp编程_第1页
关于vc实现ftp编程_第2页
关于vc实现ftp编程_第3页
关于vc实现ftp编程_第4页
关于vc实现ftp编程_第5页
资源描述:

《关于vc实现ftp编程》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、一.概述TCP/IP协议是一个四层协议,它由应用层、传输层、网络层和链路层构成。TCP/IP协议栈的每一层都由许多协议构成,从而构成了一个协议簇。应用层主要包括的协议有Telnet、FTP、HTTP、SMTP/POP3和DNS等。传输层主要包括的协议有TCP和UDP。网络层主要包括IP和IP的附属协议。数据链路层主要包括的协议有ARP(地址解析协议)、RARP协议、Ethernet协议等。FTP(FileTransferProtocol)协议主要用来在网络上进行文件传输。FTP通讯除了有一个默认的端口21外,还有其他端口,同城两个端口同时进行数据传输。一

2、个是默认的端口(通常为21),主要进行控制连接,即进行命令协议及服务器端响应码的传输。另一个非标准端口主要进行数据,上传下载文件等。关于FTP协议和FTP命令的详细描述,参考《VisualC网络通信编程实用案例精选》。实现FTP协议,有两种方式,实用WinInetAPI和使用基本Winsock。对于一般应用,用WinInet效率要高,而且简单。也可以用Winsock来编写,这样更加灵活,但是复杂度高且需要对协议非常熟悉。二.VC开发在项目中,为了开发效率,使用了WinInet的方式。FTP是MFC的WinInet支持的三个Internet功能(HTTP,

3、gopher)之一,我们需要先创建一个CInternetSession实例和一个CFtpConnection对象就可以实现和一个FTP服务器的通信。不需要直接创建CFtpConnection对象,而是通过调用CInternetsession::GetFtpConnection来完成这项工作。它创建CFtpConnection对象并返回一个指向该对象的指针。要联接到FTP服务器,需要两个步骤,首先必须创建一个CInternetSession对象,用类CInternetSession创建并初始化一个或几个同时存在的Internet会话(session),并描

4、述与代理服务器的连接(如果有必要的话),如果在程序运行期间需要保持与Internet的连接,可以创建一个CInternetsession对象作为类CWinApp的成员。然后利用CInternetsession对象获取CFtpConnection对象。MFC中的类CFtpConnection管理我们与Internet服务器的连接,并直接操作服务器上的目录和文件。1.Ftp连接类的信息下面我们简要介绍连接类的信息1.1建立连接CInternetsession对象CInternetsession(LPCTSTRpstrAgent,DWORDdwConText,

5、DWORDdwACCESSType,LPCTSTRpstrProxyName,LPCTSTRpstrProxyBypass,DWORDdwFlags);在创建CInternetSession对象时调用这个成员函数,CInternetsession是应用程序第一个要调用的Internet函数,它将创始化内部数据结构,以备将来在应用程序中调用。如果dwFlags包含INTERNET_FLAG_ASYNC,那末从这个句柄派生的所有的句柄,在状态回调例程注冊之前,都会出现异步状态。如果沒有打开Internet连接,CInternetsession就会抛出一个例外

6、,AfxThrowInternetException。GetFtpConnection()函数CFtpConnection*CIternetsession::GetFtpConnection(LPCTSTRpstrServer,LPCTSTRpstrUserName,LPCTSTRpstrPassword,INTERNET_PORTnPort,BOOLbPassive);调用这个函数建立一个FTP连接,并获得一个指向CFtpConnection对象的指针,GetFtpConnection连接到一个FTP服务器,创建并返回指向CFtpConnection对

7、象的指针,它不在服务器上进行任何操作。如果打算读写文件,必须进行分步操作。关于查找,打开和读写文件的信息需参考CFtpConnection和CFtpFileFind类。对这个函数的调用返回一个指向CFtpConnection对象的指针。如果调用失败,检查抛出的CInternetException对象,就可以确定失败的原因。1.2远程目录操作CreateDirectory()函数BOOLCreateDirectory(LPCTSTRpstrDirName);ReturnValueNonzeroifsuccessful;otherwise0.Ifthecal

8、lfails,theWindowsfunctionGetLastErrormay

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

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

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