ImageVerifierCode 换一换
格式:DOC , 页数:11 ,大小:148.50KB ,
资源ID:3560719      下载积分:8 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/3560719.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(FTP客户端的设计与实现.doc)为本站上传会员【精****】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

FTP客户端的设计与实现.doc

1、 FTP客户端的设计与实现 摘要:FTP(File Transfer Protocol)即文件传输协议是TCP/IP协议族中的一个应用层协议。FTP客户端利用TCP的可靠传输服务,减少了不同文件系统间的不兼容性,实现了文件的传送功能;而且它提供了直观的文件传输操作方式,用户只需要使用鼠标拖动选择就可以完成相关操作。文章主要介绍了FTP的相关知识、Visual Basic各种控件以及Windows API函数的调用等内容。在此基础上文章最后介绍了如何使用VB完成FTP客户端应用程序的开发。 关键词:VB ; FTP ; Windows API 0 引言 FTP(File

2、Transfer Protocol)协议即文件传输协议是TCP/IP体系结构中的一个重要协议,专门用于局域网或Internet中服务器和客户端之间进行文件传输。FTP协议利用TCP的可靠传输服务,减少了不同文件系统间的不兼容,实现了文件的传送功能。FTP极大的丰富了我们的网络生活,成为互联网上不可缺少的服务方式之一[1]。 1 设计内容 FTP使用客户/服务器方式,本课题就是设计一个FTP客户端程序,其具有以下基本功能:能完成FTP链接的打开和关闭;能实现本地和远程目录的浏览;能执行文件的上传和下载等有关操作。 2 开发工具简介 2.1 Visual Basic简介 Basic 发展

3、到今天已经有很多版本,如 GW-Basic 、QBasic 、Visual Basic 等等。其中Visual Basic 是最容易学习与应用的程序语言之一,而且其功能也非常强大。Visual Basic 6.0自带的一些功能控件可以帮助我们实现网络通信的功能,是我们网络编程中的一个重要的编程工具。 2.2 Windows API函数介绍 Win32 API也就是Microsoft Windows 32位平台的应用程序编程接口。Windows API可以提供形形色色的服务,凡是在Windows操作系统环境下开发的应用程序,都可以调用Windows API。 2.3 Internet Tr

4、ansfer控件介绍 Internet Transfer 控件是微软为方便使用者设计Internet应用程序所提供的一种控件。它提供两种Internet protocol:HTTP及FTP。我们在使用时,必须先设置好它的存取方式。存取方式分为直接连接或通过proxy来连接Internet网络两种。当我们设置好相关参数之后,Internet Transfer 控件提供两个method(OpenURL及Execute)让我们执行网络相关操作,我们可以用这两个命令来执行一些Internet command。 2.4 Windows Socket控件 Socket由 UNIX操作系统逐步移植到W

5、indows,Windows Socket规范于90年代初,依次有1.0、1.1、2.0和3.0。Windows Socket规范定义并记录了如何使用API;Socket是网络通信的基本操作单元,目前Windows支持两种套接口:流套接口和数据报套接口。TCP/IP中的TCP协议使用的是流套接口,提供了面向连接的、无差错的、发送先后顺序一致、包长度不限和非重复的网络信息包的传输。TCP/IP中的UDP则使用数据报套接口,该接口提供双向的、有序的、无重复并有记录边界的数据报服务。 2.5 FTP基础理论知识 FTP是TCP/IP的一种具体应用,它工作在OSI模型的第七层,TCP模型的第四层,

6、即应用层,同时在传输层使用TCP,所以FTP客户在和服务器建立连接前就要经过一个被称作"三次握手"的过程。其连接是可靠的,传输是面向连接的,所以能为数据传输提供可靠的保证。 使用FTP时必须首先登录,在远程主机上获得相应的权限以后,方可上传或下载文件。但其违背了Internet的开放性,为此系统管理员建立了一个特殊的用户ID,名为anonymous, Internet上的任何人在任何地方都可使用该用户ID。习惯上,人们用自己的E-mail地址作为口令。 2.6 FTP工作原理 FTP协议中,控制连接均由客户端发起,而数据连接有两种工作方式:PORT方式和PASV方式。下面以PORT方式

7、为例,如图1所示: ①FTP服务器运行FTP守护进程,等待用户的FTP请求。 ②用户运行FTP命令,请求FTP服务器为其服务  ③FTP守护进程收到用户的FTP请求后,派生出FTP子进程与用户进程 交互,建立文件传输控制连接,使用TCP端口21。 ④用户输入FTP子命令,服务器接收子命令,如命令正确,双方各派生一个数据传输进程FTP-DATA,建立数据连接,使用TCP端口20进行数据传输。 ⑤本次子命令请求的数据传输完毕,拆除数据连接,结束FTP-DATA进程。 ⑥用户继续输入FTP子命令,重复④、⑤的过程,直至用户输入quit命令, 双方拆除控制连接,结束文件传输,结束

8、FTP子进程。 图1 FTP工作原理示意图 3 详细设计 3.1 程序数据流程图 FTP的客户端程序设计的主要内容如图2所示:客户登录模块、FTP服务器目录浏览模块、上传和下载模块。设计流程:客户端程序先连接服务器,然后浏览FTP服务器目录,选择文件下载或上传,进行文件数据传输,最后断开连接[2,3]。 3.2 系统界面设计 系统界面主要包括以下几个方面的内容:登录部分、远程目录浏览部分、本地目录文件浏览部分等。系统界面是在新建窗体的基础上将其Caption改为“FTP客户端”,增加相应的文本框、命令按钮等一些控件实现,具体如图3所示 图2 程序数据流程图 图3 系

9、统界面 3.3 模块设计 3.3.1 登录模块 为使客户端能登录服务器,须设置以下属性: ◆FTP服务器地址 :txtserver ◆ 用户名 :txtuser ◆密码 :txtpassword ◆端口号 :txtport(一般为21 ) txtuser及txtpassword代表登录此FTP服务器所需要的用户名及密码,若两者皆为空字符串,则代表是以anonymous(匿名)身份登入;若输入用户名与密码,Connect会以此做为其用户名及密码与FTP服务器建立连接;随后是对“连接”按钮的设置,实现与服务器端的连接[4]。 以下为“连接”命令按钮的代码: Pri

10、vate Sub cmdConnect_Click() If Not bActiveSession And hOpen <> 0 Then If txtServer.Text = "" Then MsgBox "Please enter a server name!" Exit Sub End If Dim nFlag As Long If chkPassive.Value Then nFlag = INTERNET_FLAG_PASS

11、IVE Else nFlag = 0 End If If hConnection = 0 Then bActiveSession = False ErrorOut Err.LastDllError, "InternetConnect" Else bActiveSession = True EnableUI (CBool(hOpen)) FillTreeViewContr

12、ol (txtServer.Text) FtpEnumDirectory ("") If EnumItemNameBag.Count = 0 Then Exit Sub FillTreeViewControl (txtServer.Text) End If End If End Sub 3.3.2 浏览模块 3.3.2.1 远程端浏览模块 本模块是通过对treeview控件的设置以及相关代码的编写来实现对FTP服务器默认目录与文件的读取。当建立连接成功之后,通过函数调用取得FT

13、P服务器端默认最大的目录(FTP服务器针对不同用户开放不同的目录名称)。当然FTP服务器端也必须开放目录读取权限,允许客户端连接登录及浏览目录,否则Connect的执行将失效[5,6,7]。 3.3.2.2 本地浏览模块 本地浏览模块通过DriveComboBox、DirectoryListBox和FileListBox三个控件设计实现。DriveComboBox用于设置驱动器,DirectoryListBox用于显示当前驱动器所有文件与目录,FileListBox用于显示所选中的文件夹中的所有文件。 3.3.3 文件上传下载模块 文件传输是一个双向的过程,既可以把服务器上的文件下载到

14、指定的文件下,也可以把本地某文件上传到服务器。 3.3.3.1 文件下载模块 文件下载是通过点击“下载”按钮来完成对选定的远程目录下文件的下载。此功能实现主要是通过程序获取本地和远程的当前路径,区分被选中的内容类型为文件还是目录,若为文件时执行下载过程,否则退出。 以下为“下载”命令按钮的代码[8]: Private Sub cmdGet_Click() Dim bRet As Boolean Dim szFileRemote As String, szDirRemote As String, szFileLocal As String Dim szTem

15、pString As String Dim nPos As Long, nTemp As Long Dim nodX As Node Set nodX = TreeView1.SelectedItem If bActiveSession Then If nodX Is Nothing Then MsgBox "Please select the item to GET!" Exit Sub End If szTempString = TreeView

16、1.SelectedItem.Text szFileRemote = szTempString nPos = 0 nTemp = 0 Do nTemp = InStr(1, szTempString, "/", vbBinaryCompare) If nTemp = 0 Then Exit Do szTempString = Right(szTempString, Len(szTempString) - nTemp) n

17、Pos = nTemp + nPos Loop szDirRemote = Left(szFileRemote, nPos) szFileRemote = Right(szFileRemote, Len(szFileRemote) - nPos) szFileLocal = File1.Path rcd szDirRemote bRet=FtpGetFile(hConnection,szFileRemote,szFileLocal&"/"&szFileRemote, False, I

18、NTERNET_FLAG_RELOAD, dwType, 0) File1.Refresh If bRet = False Then ErrorOut Err.LastDllError, "FtpGetFile" Else MsgBox "Not in session" End If End Sub 3.3.3.2文件上传模块 文件上传是通过点击“上传”按钮来完成对选定的本地文件的上传。上传文件基本与下载文件类似,但FTP服务器端必须开放目录写入的权限,并允许修改FTP服务器目录下文件,否则,上传动作将失败。

19、 以下为“上传”命令按钮的代码[9,10]: Private Sub cmdPut_Click() Dim bRet As Boolean Dim szFileRemote As String, szDirRemote As String, szFileLocal As String Dim szTempString As String Dim nPos As Long, nTemp As Long Dim nodX As Node Set nodX = TreeView1.SelectedItem If bActiv

20、eSession Then If nodX Is Nothing Then MsgBox "Please select a remote directory to PUT to!" Exit Sub End If If nodX.Image = "leaf" Then MsgBox "Please select a remote directory to PUT to!" Exit Sub End If

21、 If File1.FileName = "" Then MsgBox "Please select a local file to put" Exit Sub End If szTempString = nodX.Text szDirRemote = Right(szTempString, Len(szTempString) - Len(txtServer.Text)) szFileRemote = File1.FileName szFileLocal

22、 = File1.Path & "\" & File1.FileName If (szDirRemote = "") Then szDirRemote = "\" rcd szDirRemote bRet = FtpPutFile(hConnection, szFileLocal, szFileRemote, dwType, 0) If bRet = False Then ErrorOut Err.LastDllError, "FtpPutFile" E

23、xit Sub End If Dim nodChild As Node, nodNextChild As Node Set nodChild = nodX.Child Do If nodChild Is Nothing Then Exit Do Set nodNextChild = nodChild.Next TreeView1.Nodes.Remove nodChild.Index If nodNextChil

24、d Is Nothing Then Exit Do Set nodChild = nodNextChild Loop If nodX.Image = "closed" Then nodX.Image = "open" End If FtpEnumDirectory (nodX.Text) FillTreeViewControl (nodX.Text) End If End Sub 4 系统设计测试与分析 首先找到一个可以使用的FTP服务

25、器的地址或自己配置一个FTP服务器,随后取得相应的权限。运行设计完成的FTP客户端,并填写相关内容,点击“连接”按钮正常连入主机,具体如图4所示:可以看到左边的是远程服务器端的文件与目录,而右边是本地文件与目录,我们可以点击 “上传”和“下载”两个按钮对文件进行上传或下载操作,非常简捷,方便。当完成相关操作后,我们可以点击“断开”命令按钮来断开FTP连接,以保证FTP用户正确安全的退出。实验测试表明我们设计的FTP客户端程序已经实现了标准的FTP客户端的基本功能。 图4 连接成功后系统界面 5 结束语 通过此次毕业设计,我发现了自己在做工作中的许多不足,认识到了知识与实践联系的重要性

26、体会到只有不断的充实自己,不断的挑战自我,才能在今后的工作生活中获得更多的收获。毕业设计是对自己的一个挑战,同时毕业设计也作为几年来学习成果的检验,让我学习到了很多东西。虽然只有短短的几个月,但它将对我以后的前进道路产生深远的影响。在此向所有帮助我的老师和同学致谢! 参 考 文 献 [1] 谢希仁.计算机网络(第4版)[M].北京:电子工业出版社,2003:284-289. [2] 黄嘉辉.Visual Basic.NET网络程序设计[M].北京:清华大学出版社,2003:17-268. [3] 张毅.VB应用技巧与常见问题你问我答[M].北京:机械工业出版社,2003:13

27、166. [4] 赵洁.同步FTP上载/下载程序的实现技术[J].计算机系统应用,2002(6):38-40. [5] 吴光明.使用开发FTP客户端应用程序[J].河北理工学院学报,2005,27(1): 59-64. [6] 谷震离,杜根远,谷新黎.VB应用程序开发与设计[J].许昌师专学报,2002,21(2): 57-61. [7] 丁亚明.VB中的变量及参数传递[J].微型电脑应用,2002(7):59-63. [8] 严仲兴.浅谈面向对象的程序设计思想[J].电脑知识与技术,2006(12):139-158. [9] 李书浩,齐治昌.程序设计规则检查:一种保障软件

28、质量的基本方法[J].计算机科学, 2003,30(11):148-151. [10] W.Richard Stevens.TCP/IP详解卷1[M].北京:机械工业出版社,2000:14-324. The Design and Implement of FTP Client GUO Yuan-jia Abstract: FTP (File Transfer Protocol) is a application layer protocol in TCP/IP family. FTP client terminal program also offers visua

29、l and direct way of transporting files. Clients can finish the relevant operation just by dragging the mouth and making choice. The text mainly tells you how to use Visual Basic and Windows API function to implement every function of the FTP client, finally accomplish the development of the Visual Basic application program. Key words: VB ; FTP ; Windows API

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服