网络编程ftp客户端程序

上传人:自*** 文档编号:80690767 上传时间:2019-02-19 格式:DOC 页数:27 大小:204.80KB
返回 下载 相关 举报
网络编程ftp客户端程序_第1页
第1页 / 共27页
网络编程ftp客户端程序_第2页
第2页 / 共27页
网络编程ftp客户端程序_第3页
第3页 / 共27页
网络编程ftp客户端程序_第4页
第4页 / 共27页
网络编程ftp客户端程序_第5页
第5页 / 共27页
点击查看更多>>
资源描述

《网络编程ftp客户端程序》由会员分享,可在线阅读,更多相关《网络编程ftp客户端程序(27页珍藏版)》请在金锄头文库上搜索。

1、一设计题目:FTP客户端程序二设计要求:程序能实现基本FTP客户端功能,能登陆FTP服务器,显示登陆客户目录下的文件和目录名,能从该目录中选择下载服务器的文件,也能向服务器上传文件。1.该程序是基于对话框的MFC程序,程序界面布置要点:1)三个文本编辑框,分别用于输入FTP服务器域名、登陆用户名和登陆口令。2).一个列表框,用来显示FTP服务器当前目录的内容,并允许客户从中选择文件下载。3).四个命令按钮分别执行查询、上传、下载和退出的功能。2.用户执行程序的流程是:1)进行各种操作之前,应首先输入服务器域名、登陆用户名和口令。如果要进行查询,可以点击“查询”按钮,调用OnQuery函数。该函

2、数获得用户当前输入的服务器名、登陆用户名和口令等信息,清除列表框的内容;然后创建Internet会话类对象,进行服务器的登陆,试图建立与指定FTP服务器的连接;如果连接成功,就创建ftpFileFind文件检索类对象,查找服务器上当前目录的任意文件,找到了第一个文件后,继续找其他的文件,并将找到的文件或目录名显示在列表框中。所有文件找到后,结束查询,并依次删除文件查询对象、FTP连接对象和Internet会话对象,结束会话。2)此时,可以从服务器下载文件。从列表框中选择一个文件,会产生LBN_SELCHANGE事件,自动调用相应的OnSelchangeListFile函数,禁用用来输入的文本框

3、控件,禁用查询和上传按钮,激活下载按钮。此时,用户可以点击“下载”按钮,产生BN_CLICKED事件,自动调用OnDownLoad函数,调用DownLoad函数,下载该文件。下载完毕,禁用下载按钮,激活查询和上传按钮,激活用来输入的文本框控件。而DownLoad函数重新创建Internet会话,建立FTP连接,下载文件后,将会话对象和连接对象清除。3)如果要向FTP服务器上传文件,点击“上传”按钮,产生BN_CLICKED事件,调用OnUpLoad函数,该函数获得当前输入的服务器名、登陆用户名和口令,禁用用于输入的文本框控件,禁用查询按钮,禁用用于输入的文本框控件,弹出小对话框,获得待上传的本

4、地机文件路径和文件名,调用UpLoad函数上传文件。上传完毕,激活查询按钮,激活用于输入的文本和编辑控件。UpLoad函数也重新创建Internet会话,建立FTP连接,上传文件后,然后清除会话对象和连接对象。可见,此程序的查询、上传和下载功能基本是独立的。每次都要创建会话、建立连接,执行操作,然后清除对象。这时是为了简单清楚起见而这样做的。3.此程序的主要技术要点是:如何创建一个Internet会话,即创建CinternetSession对象;如何建立与FTP服务器的连接,即创建CftpConnection对象;如果连接成功,如何获得当前登陆的目录下的文件和目录名称,即检索一个目录下的文件,

5、并显示文件信息;如何下载文件、上传文件以及关闭连接。三系统概要设计1.FTP使用函数介绍:(1) CInternetSession:CinternetSession()。在创建CinternetSession对象时调用这个函数,这是应用程序第一个要调用的Internet函数,他初始化内部数据结构。该函数原型为:CInternetSession:CinternetSession(LPCTSTR pstrAgent=NULL,DWORD dwContext=1,DWORD dwAccessType=INTERNET_OPEN_TYPE_PRECONFIG,LPCTSTR pstrProxyName

6、=NULL,,LPCTSTR pstrProxyBypass=NULL,DWORD dwFlags=0);参数含义:PstrAgent:指向应用程序名字的指针,默认值为NULL,此时MFC调用全局函数AfxGetAppName取得应用程序的名字。DwContext:上下文标识符,默认为1,也可以明确的指明一个ID,这样CinternetSession对象和所有操作都和该ID发生联系。DwAccessType:访问类型,默认值为INTERNET_OPEN_TYPE_PRECONFIG,表示在注册表中预先设置的访问类型。PstrProxyName:首选代理服务器的名字,如果DwAccessType

7、设为如上默认值,则该参数默认值为NULL。PstrProxyBypass:指向服务器可选地址表的指针,默认值为NULL,表示从注册表中读取。DwFlags:只是缓存和异步的标志,默认值为0。(2) CInternetSession:GetFtpConnection( )。调用这个函数建立一个FTP连接,并获得一个指向CftpConnection对象的指针。该函数原型为:CftpConnection * GetFtpConnection(LPCTSTR pstrServer,LPCTSTR pstrUserName=NULL,LPCTSTR pstrPassword=NULL,INTERNET_

8、PORTnPort=INTERNET_INVALID_PORT_NUMBER,BOOL bPassive=FALSE);参数含义:pstrServer:指向FTP服务器名字的指针。pstrUserName:指向用户名的指针,默认值为NULL,表示用户名anonymous。pstrPassword:指向密码的指针,默认值为NULL。如果PstrUserName与PstrPassword都为NULL,则密码为anonymous。如果PstrPassword为NULL,而PstrUserName不为NULL,则密码为空。nPort:服务器上那个的TCP/IP端口号,一般为21。bPassive:是否

9、为被动方式。默认值为FALSE,表示客户端以主动方式与服务器建立连接(3)CftpConnection:GetFile( )。调用这个函数,可以从FTP服务器上下载文件。该函数原型为:BOOL GetFile(LPCTSTR pstrRemoteFile,LPCTSTR pstrLocalFile,BOOL bFailIfExists=TRUE,DWORD dwAttributes=FILE_ATTRIBUTE_NORMAL,DWORD dwFlags=FTP_TRANSFER_TYPE_BINARY,DWORD dwContext=1);参数含义:pstrRemoteFile:指向要从服务器

10、上下载的文件名的指针。pstrLocalFile:指向下载的文件在本机上保存的名称的指针。bFailIfExists:布尔型。当本机已存在pstrLocalFile指向的文件时,是否替换本机的文件。dwAttributes:指定文件属性。dwFlags:文件如何传送,默认值为FTP_TRANSFER_TYPE_BINARY,以二进制方式传送。dwContext:上下文标识符。2.界面设计:(1)用Visual C+ 6.0创建基于对话框的应用程序,添加五个Edit Box控件(分别用于存储FTP服务器的IP地址、用户名、密码、端口号和FTP服务器当前目录),再添加一个List Control控

11、件(显示当前目录内容)和一些按钮等。(2)依次添加与上述控件对应的变量:Cstring m_HostEdit; /FTP服务器IP地址CString m_UserEdit; /用户名CString m_PasswordEdit; /密码int m_port; /端口号Cstring m_DirName; /FTP服务器当前目录ClistCtrl m_FileList; /显示当前目录内容(3)添加其他变量: CinternetSession *m_pInetSession;/管理Internet连接 CftpConnection *m_pFtpConnection;/管理FTP连接 ./其他变

12、量3.界面操作:(1)程序执行时的界面:客户端通过登录可实现与FTP服务器的连接,查看目录及文件。点击对话框上的按钮就能执行相应的操作。(2)当建立连接后,查看目录下的文件列表时,双击文件名便可执行下载功能。(3) 可在已连接的FTP服务器上创建文件目录(4)可传送本地文件到FTP服务器端,在服务端打开目录或创建目录,再向目录里上传文件(输入要上传的本地文件名,输入文件在服务器目录里的文件名)。四系统详细设计void CMyFtpDlg:OnConnect() /用户点击连接、建立连接 /初始化处理UpdateData(); GetDlgItem(IDC_CONNECT)-EnableWind

13、ow(FALSE);m_HostEdit.TrimLeft(); m_HostEdit.TrimRight();m_UserEdit.TrimLeft();m_UserEdit.TrimRight();m_PasswordEdit.TrimLeft(); m_PasswordEdit.TrimRight();if (m_UserEdit=) m_UserEdit=anonymous; /默认用户名为anonymous if (m_PasswordEdit=) m_PasswordEdit=anonymous; /默认密码为anonymousif (m_port=0) m_port=21; /默

14、认端口为21TRACE(:%s:%s:%s:%sn, m_HostEdit, m_UserEdit, m_PasswordEdit);trym_pInetSession = new CInternetSession(); /建立Internet连接m_pFtpConnection = m_pInetSession-GetFtpConnection(m_HostEdit, m_UserEdit, m_PasswordEdit,m_port); /建立FTP连接 if (bFirstConnect) List(); /第一次连接时显示服务器目录文件及文件夹 bConnect=TRUE;GetDlg

15、Item(IDC_DISCONNECT)-EnableWindow(TRUE);/连接已经建立,允许点击断开按钮catch(CInternetException *pEx)/错误处理TCHAR szError1024;if(pEx-GetErrorMessage(szError,1024)AfxMessageBox(szError);else AfxMessageBox(发生错误.);pEx-Delete();m_pFtpConnection = NULL;m_pInetSession = NULL; GetDlgItem(IDC_CONNECT)-EnableWindow(TRUE);void CMyFtpDlg:OnSen

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号