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

上传人:知****量 文档编号:91604662 上传时间:2023-05-27 格式:DOC 页数:54 大小:1,002.50KB
返回 下载 相关 举报
FTP客户端的设计与实现毕业设计.doc_第1页
第1页 / 共54页
FTP客户端的设计与实现毕业设计.doc_第2页
第2页 / 共54页
点击查看更多>>
资源描述

《FTP客户端的设计与实现毕业设计.doc》由会员分享,可在线阅读,更多相关《FTP客户端的设计与实现毕业设计.doc(54页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、 毕业设计(论文)题目:FTP客户端的设计与实现学 生 姓 名 学 号 201022080243 班 级 通信102202H 所属院(系) 电子信息工程系 指 导 教 师 2014 年 5 月 20 日FTP客户端的设计与实现摘要(随着嵌入式系统开发的迅速发展,嵌入式系统应用从传统的工业和设备拓展到了家用电器,通信设备,汽车电子等领域,使得嵌入式系统、图形用户界面(GUI)得到了广泛应用。实时嵌入式系统对GUI的需求越来越明显,而这一切均要求有一个高性能、高可靠的GUI支持。QT作为一种先进的跨平台语言,可以在Windows、Linux以及Android和众多的嵌入式场合发挥作用。本文从QT架

2、构和特点以及Ftp通信协议的原理出发,在需求分析的基础上详细论述了利用QT设计出Ftp下载工具的具体方法。该下载工具实现了给出计算机名称或者IP地址进行Ftp登陆,并能查看本地和服务器端的文件信息列表,从而对指定文件进行下载功能,并具有一定的实用性和便捷性。关键词: 嵌入式, QT语言, FTP, 下载The Design and Implementation of FTP ClientABSTRACT(With the rapid development of embedded system development, embedded system application is expand

3、ed from industry and the traditional equipment to household appliances, communication equipment, automotive electronics and other fields, the embedded systems, the graphical user interface (GUI) has been widely applied.Real-time embedded system on GUI is more and more obvious, all of which require a

4、 high performance, high reliable GUI support.QT as an advanced cross-platform language, can be Windows, Linux and Android and embedded occasions many play a role.According to the principle of the QT architecture and the characteristics of Ftp communication protocol, on the basis of the demand analys

5、is in detail using QT to design a specific method of Ftp download tool.The download tool is the computer name or IP address of the Ftp log file information, and can view the list of local and server off, then download and upload function to the specified file, and has certain practicability and conv

6、enient.Key words : Embedded, QT language, FTP, Download目录第1章 引言- 1 -第2章 系统分析- 3 -2.1 需求分析- 3 -2.2 功能分析- 3 -第3章 系统设计- 5 -3.1 概要设计- 5 -3.2 详细设计设计- 5 -3.2.1 系统界面- 5 -3.2.2 登陆验证功能设计- 6 -3.2.3 文件检索浏览设计- 12 -3.2.4 下载功能设计- 12 -3.2.5 上传功能设计- 13 -3.2.6 进度条显示功能设计- 14 -3.3 关键技术简介- 15 -3.3.1 QT介绍- 15 -3.3.2 FTP

7、通信协议- 17 -第4章 系统实现- 19 -4.1 QT工程的编译步骤- 19 -4.2 登陆验证功能实现- 19 -4.3 下载功能实现- 21 -4.4 上传功能实现- 21 -第5章 系统构建与移植- 23 -5.1 建立交叉编译环境- 23 -5.2 H-JTAG烧写U-BOOT- 23 -5.3 内核移植- 27 -5.4 构建文件系统- 33 -第6章 总结- 37 -参考文献- 38 -致谢- 39 -附录- 40 -1 外文资料翻译- 40 -2 外文资料原文- 45 -IV太原科技大学华科学院毕业设计(论文)第1章 引言 21世纪是网络时代,是信息时代,随着互联网技术的迅

8、猛发展,推动了全世界范围内的信息传输和信息交流。而随着计算机民用化普及,大众主要使用的网络服务有:电子邮件(E-mail),文件传输(FTP),远程登录(Telnet),聊天系统(Chat)等等,其中FTP更是功不可没。用户只需敲几个字,便能得到自己想要的文件信息,全世界已有1000多个FTP文件服务器对所有互联网用户开放,用户可以通过与互联网相连的计算机,把自己需要的文件传过来即可。 目前有许多互联网站点都建立了可供大众访问的资料库,这些信息资料可以通过FTP获取。匿名的FTP用户有机会存取到世界上最大的信息资料库,这个信息库是日积月累起来的,而且还在增长,永不关闭,而且,这些服务是永远免费

9、的。Ineternet之所以能发展迅猛,是因为人们使用通过标准协议提供标准服务的程序,这个标准协议在全球范围内有效。“嵌入式系统”一词最早是使用于工业和交通设备内部的控制装置,例如数控机床中的工业控制器、飞行器的自主导航装置,是一种完成专门功能的特殊计算机,其核心功能是控制,同时也有一定的计算功能。随着上世纪90年代末以来,嵌入式处理器,嵌入式操作系统和嵌入式应用开发环境及开发工具的飞速发展,特别是与网络通信技术、信号处理技术、多媒体技术等不同技术领域的融合,嵌入式技术已经成为一种集自动控制,网络通信,信号处理,分布式计算,人机互动,智能感知等功能为一体的综合性技术,其应用范围越来越广泛,从传

10、统的工业和设备逐步拓展到家用电器,通信设备,汽车电子,医疗卫生,个人娱乐,智能家居,楼宇控制,办公自动化,商业设施,银行终端等与人们日常生活、工作密切相关的很多领域。而在嵌入式操作系统中,Linux操作系统是用途最广,装备产品最多的,特别是最近两年间,从智能手机和数字机顶盒到很多行业终端和工业控制设备,应用越来越普及。 本课题的目的是尝试将已经逐渐在网络发展中成熟的技术,应用到当前快速发展的新兴科技产业-嵌入式系统上,探索适应当前科技发展的软硬件结合方式,以及各行业复杂业务逻辑在嵌入式系统上的统一出发点。FTP 是因特网络上历史最悠久的网络工具,从 1971年由专家AKBHU提出第一个 FTP

11、 的 RFC(RFC114)至今 30多年FTP凭借其独特的优势一直都是因特网中最重要、最广泛的服务之一。FTP是 TCP/IP提供的标准机制,实现从一台主机向另一台主机传送类似DOS的黑屏之下进行 FTP 操作,操作繁琐,效率低,目前很少使用文件的任务。在网络发展初期,文件传输协议(FTP)是惟一可行的选择。现在,可以使用很多种并非专门为文件传输设计的技术来传输文件,如电子邮件、即时消息、互联网中继聊天、甚至网络服务器等。这些技术当中的每一种技术都能够利用人们每天为某种目的使用的非常熟悉的单一的界面。虽然这些技术非常方便,但是,每一种技术都缺乏某种无法形容的强大功能。例如,电子邮件服务器通常

12、限制附件容量的大小,网络服务器对于批量下载比较麻烦,而且大型文件的下载很容易出错。然而,在众多的文件传输的选择中,成熟的FTP服务器在继续发展,并且发展得比以往任何时候都要强大。现在,任何胜任文件传输任务的FTP服务器都有很多旨在管理其应用的功能。这些功能包括用户身份识别、文件传输策略,并且使用与保密网站相同的加密技术。采用SSL/TLS技术,FTP服务器能够为FTP客户机和服务器之间的控制命令加密以及为文件数据本身加密。拥有了WS_FTP Pro等软件中的支持PGP加密功能,文件数据使用公共密钥加密就更安全了,只有要求为这个文件加密的用户才能够为这个文件解密。广泛的身份识别资源进一步提高了安

13、全性。SurgeFTP和SecureFTP这两种软件都能够通过咨询外部的活动目录或者ODBC(开放数据库互联)资源来验证用户的身份。包括SecureFTP、RaidenFTPD和Titan FTP在内的一些FTP服务器软件支持S/KEY身份识别系统。S/KEY是一种一次性口令系统,能够最大限度提高安全性。在我国,客户所使用的的 FTP 客户端软件很多,大致我们可以把它们分为三类:第一类是传统的 FTP 客户机,这类客户机是在类似 DOS的黑屏之下进行 FTP 操作,操作繁琐,效率低,目前很少使用;第二类是图形化用户界面的 FTP软件,常用的如 CuteFTP、WS- FTP 等等,界面友好,功

14、能强大,方便使用,是目前最常使用的 FTP 专用软件;第三类是 Web 浏览器,如 IE、Netscape 均支持 FTP 协议,通过浏览器同样能登录 FTP 服务器,但速度较慢。第2章 系统分析2.1 需求分析要设计一个具有界面的并且能够友好交互的FTP客户端,基本的需求分析如下所示:(1)连接需求根据用户所提供的IP、FTP服务器域名,用户账户和密码与所选择的服务器进行连接,如果连接成功则显示连接成功的提示信息;如果失败则显示连接失败的提示信息。(2)文件浏览需求能够改变当前文件目录,登陆到指定的服务器后能够查看服务器的文件信息,包括目录、文件名称、文件大小等信息。(3)文件下载与上传需求

15、用户能够从服务器端下载所需要的文件到指定的本地目录,也能够把本地目录的文件上传到服务器端的特定目录里。(4)进度提示功能能够用进度条的形式告诉用户当前上传和下载的进度。(5)选择保存路径能够对下载的文件进行指定路径保存。2.2 功能分析FTP下载客户端的主要作用,就是让用户连接上一个远程计算机(这些计算机上运行着FTP服务器程序)查看远程计算机有哪些文件,然后把文件从远程计算机上拷贝到本地计算机,或者把本地计算机的文件送到网络上一台远程计算机去。而最原始的FTP下载需要很多参数设置,对于设计开发有一定困难。本系统是利用QT4所带的QFTP类库设计出具有良好友好交互界面,从而简化用户操作的难度,

16、使用户能够轻松简单的使用FTP,主要功能包括:用户登录,从根目录或指定位置获得文件目录列表,下载或上传等。(1) 用户登录功能分析首先作为使用客户端的用户,需要提供FTP服务器域名,服务器可用账户,服务器可用账户对应的密码,只有完成这三个基本条件后,才能够连接并登录FTP服务器端,如果任意一个为空或者账户密码对应不上,则以弹出警告窗口的形式提醒用户。图2.1 登陆界面设计(2) 文件浏览功能分析当用户成功登陆到FTP服务器时,对于文件浏览的操作要求有两部分,一个是浏览用户计算机本地文件的需求,另一个是登录到服务器要浏览服务器文件的需求。如图所示,左边为本地文件浏览,右边为登录到服务器的文件浏览

17、。图2.2 浏览文件界面设计(3) 文件上传下载功能分析作为客户端的核心功能上传和下载,首先应该登陆服务器才能实现功能,对于下载功能来说,通过浏览服务器的文件,选定好文件后,选择下载功能,对于上传功能来说,则选择好本地文件,选定好服务器目录,选择上传功能即可。第3章 系统设计3.1 概要设计软件平台:基于跨平台Qt类库在Linux下运行的FTP客户端设计开发工具:Linux下QT Creator4.5.3版本进行开发功能模块:验证登录,文件浏览,上传功能,下载功能。QT ftp客户端验证登陆文件浏览上传功能下载功能 图3.1 功能模块划分示意图3.2 详细设计设计3.2.1 系统界面FTP下载

18、工具的界面设计具体如下:新建工程,双击QT Creator图标,点击Create Project按钮,选择Qt C+Project,接着输入文件名以及保存路径,然后点击“next”;这就进入QtCreator的设计界面。选择左上角的File菜单,在下拉菜单里选择New File Or Project命令,选择C+ Project选项,创建新的工程。设计图形界面,工程新建完毕后,开始创建图形界面。首先,选择File-New命令,创建一个新的窗体,把新窗体的名字命名为“FTP客户端”,接着向窗体上添加控件,添加控件的方法简单,采用拖放的方式即可。根据功能需要,我往窗体上加入了4个Label,3个L

19、ine Edit,5个PushButton部件,1个TreeWidget(窗体),一个TollButton(返回按钮)及一个ProgressBar进度条部件。如图示将控件属性修改:将“服务器地址”Label后的Line Edit 的objectName属性改为“ServerLineEdit”,其text属性改为一个奇趣的FTP网站地址,.将“用户名”label后的Line Edit的objectName属性改为“userLineEdit”,其text属性改为空,将其toolTip属性改为“默认用户名请使用:空,此时密码任意。”将“密码”label后的Line Edit的objectName属性

20、改为“passWdLineEdit”,其text属性改为空,将其echoMode属性改为“ParentButton”。将“登陆”按钮的ibjectName属性改为“loadButton”。将“返回上一级目录”按钮的objectName属性改为“ParentButton”。将“下载”按钮的objectName属性改为“downButton”。图3.2系统界面设计3.2.2 登陆验证功能设计 这个事件是用来检查启动以及登陆FTP服务的状态,并把连接迅速显示在状态条上,由于QT槽函数是实时传输的,类似于C+的message,因为状态条的更新也是非常及时的, SlotLoginClient:slotL

21、ogin()QString serverAddress=LineEditServer-text();If(serverAddress.isEmpty()QMessageBox:warning(this,tr(“errot”),tr(“PLEASE input server address!”);Return;QString useName=LineEditUser-text();If(username.isEmpty()QMessageBox:warning(this,tr(“error”),tr(“please input user name!”);Return;Qstring passwo

22、rd=LineEditPssword-text();ftpClient=new QFtp();ftpClient-connectToHost(serverAddress);connect(ftpClient,SIGNAL(stateChanged(int),this,SLOT(slotStateChange(int);connect(ftpClien,SIGNAL(done(bool),this,SLOT(slotDone(bool);ftpClient-login(username,password);curStatus=LOGIN;第1行到13行进行输入数据的获取和校验第14行创建一个QF

23、tp对象。第15行通过connectToHost()方法连接服务器端,第16、17行连接信号与槽,done(bool error)信号在最后一条命令处理完毕后发出.参数error提示是否有错误发生。如果为true,表示有错误发生没错误信息可以通过errorSting()方法得到。stateChanged(int state)信号在连接状态发生变化时发出,参数state表示新的连接状态,可以使以下一个值。QFtp:Unconnected; 表示主机未连接QFtp:HostLookup; 表示正在查询主机。QFtp:Connecting; 表正在尝试连接主机。QFtp:Connected; 表示已

24、成功连接主机。QFtp:Closing; 表示正在断开(断开后的状态时Unconnected)。第18行以输入的用户名和密码登陆服务器。第19行设置当前的状态时登陆状态。这里只判断QFtp:LoggedeIn状态,如果已经成功登陆,则能“上传”和“下载”按钮。具体代码如下:Void FtpClient:slotStateChanged(int state)If(state=QFtp:LoggedeIn)PushButtonPut-setEnabeled(true);slotPut*()是创出按函数,根据用户名输入的文件名上传文件,QFtpde put()方法实现文件的上传。Put()方法的函数

25、原型如下:int put(QIODevice *dev,const QString *file,TransferType type=Binary)参数dev是一个QIODevice指针,在这里创建一个QFile对象,file参数指定文件名,type参数指定传输类型,可以使binary和ascii,默认采用二进制binary方式 Void FtpClient:slotPut()Bool ok;QString filename=QInputFialogLLgetText(this,tr(“put file”),tr(“PLEASE INPUT FILE NAME:”),QLineEdit:Norm

26、al,QString(),&ok);If(ok&!fileName.isEmpty()QFile *remoteFile=new QFile(fileName);ftpClient-put(remoteFileName,fileName);curStatus=PUT; SlotGet()是下载方法,QFtpd get()方法实现文件的下载。Get()方法的原型如下: Int get(const QString&file,QIODevice *dev=0,TransferType type = Binary)参数file指定保存在本地的文件名,dev为一个QIODevice指针,这里是一个QFi

27、le对象指针,type指定传输类型。Void FtpClient:slotGet()Bool ok;QString filename=QInputDialog:getText(this,tr(“get file”;),tr(“Please input file name:”),QLineEdit:Normal,QString(),&ok);If(ok&!fileName.isEmpty()localFile=new QFile(fileName);localFile-open(QIODevice:WriteOnly);ftpClient-get(fileName,localFile);curS

28、tatus=GET;slotDone()方法为相应done()信号的槽函数。具体代码如下:void FtpClient:slotDone(bool error)If(error)QMessageBox:warning(this,tr(error),ftpClient-errorString();Return;If(curStatus=LOGIN)PushButtonLogin-setEnabel(false);curStatus=None;If(curStatus=PUT)QMessageBox:warning(this,str(“succeed”),tr(“Put file succeed!

29、”);curStatus=None;If(curStatus=Get)QMessageBox:warning(this,tr(“”succeed),tr(“get file succeed!”);curStatus=None;以上代码中第1行到15行为处理过程中的错误处理。第6行到10行的作用是如果当前状态为“登陆”状态,则表示登陆成功,将“登陆”按钮编程不可用。第11行到第15行的作用是如果当前状态为“上传状态”,则表示上传成功。第16行到第21行的作用是如果当前状态为“下载状态”,则表示下载成功。 本段代码主要用来检测QFtp类现在的状态,侦测文件是否下载完毕。Void Ftp:ftpCo

30、mmandFinished(int,bool error)/定义连接结束QDebug()currentCommand()=QFtp:ConnerctToHost)If(error)qDebug()serverLineEdit-text();connectOrDisconnect();return;qDevyg()statusLabel-setText(tr(“正在登陆到%1.”).arg(ui-serverLubeEdut-text();ui-downButton-setDefault(ture);ui-loadButton-setEnabled(ture);returnqDebug()cur

31、rentCommand()=QFtp:Login)ftp-list();if(ftp-currentCommand()=QFtp:get)If(error)Ui-statusLabel-setText(tr(“取消下of%l.”).arg(file-fileName();File-close();File-remove();/如果错误取消下载ElseUi-statusLabel-setText(tr(“下载到当前目录%l”).arg(file-fileName();File-close();/正确下载到当前目录Delete file;enbleDownloadButton();if(ftp-c

32、urrentCommand()=QFtp:List)If(isDirector.isEmpty() Ui-treeWidget-addTopLevelItem(newQTreeWidgetItem(QStringList()treeWidget-setEnabled(false);3.2.3 文件检索浏览设计 CDtoParent()主要实现返回上一层文件系统,进行对上一层文件系统的浏览以及检索Void Ftp:cdToParent()qDebug()treeWidget-clear();/当返回父目录时,把当前列表内容清空isDirectory.clear();currentPath=cur

33、rentPath.left(currentPath.lastIndexOf(“/”)if(currentPath.isEmpty()Ui-parentButton-setEnabled(false);ftp-cd(“/”);Elseftp-cd(currentPath);ftp-list();/如果当前路径内容为空,则返回上层,否则显示当前路径内容。3.2.4 下载功能设计 实现下载功能源码如下:Void Ftp:downloadFile()qDebug()treeWidget-currentItem()-text(0); If(QFile:exists(fileName)QMessageBo

34、x:information(this,tr(“FTP”),tr(“there already exitsts a filecalled %1 in the current directoru”).arg(fileName); /检查FTP服务器、用户名密码是否正确Return:File = new QFile(fileName);QMessageBox:information(this,tr(“FTP”),tr(“Unalbe to save the file %1:%2.”).arg(fileName).arg(file-errorString();Delete file;Return;ft

35、p-get(ui-treeWidget-currentItem()-text(0),file);ui-statusLabel-setText(tr(“正在下载%1”);ui-downButton-setEnabled(false);3.2.5 上传功能设计 实现功能代码如下void Ftp:uploadFile() QString localFile= QFileDialog:getOpenFileName(0, tr(upload file dialog) );/打开本地文件夹 if ( localFile.isNull() return; QFile *file=new QFile(loc

36、alFile); fileList-clear(); progressDialog-setLabelText(tr(Uploading %1.).arg(localFile); QFileInfo fi(localFile.toUtf8(); ftp-put(file,fi.fileName(); progressDialog-show(); isDirectory.clear(); ftp-list();3.2.6 进度条显示功能设计在此,将进度条的槽函数与下载的信号进行连接之后,进度条会根据欲下载数据的传输量同步更新,该链接函数如下:Connect(ftp,SIGNAL(listInfo(

37、QUrlInfo),this,SLOT(addToList(QUrlInfo);/根据传输量a来更新进度条的状态Void ftpClient:updateTransFerProgress(qint64 readBytes,qint64 totalBytes)/根据数据的传输状态来更新的更新进度条槽方法Ui-progressBar-setMaxinum(totalBytes);/设置进度条的最大值Ui-progressBar-setValue(readBytes);/设置进度条的当前值3.3 关键技术简介3.3.1 QT介绍Qt是什么?Qt是一个用于桌面系统和嵌入式开发的跨平台应用程序框架。它包

38、括一个直观的 API 和一个丰富的类库,以及用于 GUI 开发和国际化的集成工具,另外它支持 Java 和 C+开发。利用它,我们无须重新编写源代码,便可以构建运行在不同桌面操作系统和嵌入式设备上的软件应用程序。借助 Qt,我们可以更快速地构建先进的用户界面:它不仅提供了丰富的标准widgets 库,动态布局引擎等 GUI 功能,还通过集成 OpenGL 与 OpenGL ES 提供了先进的 3D 可视化支持,此外,它还具有强大的图形画布和 Widgets 样式表,使我们得以使用变焦、旋转和人机互动功能构建先进的用户界面,并且能用寥寥几行代码便可快速定制自己的用户界面。QT是Trolltech

39、公司的一款图形开发产品,它采用完全的面向对象技术来进行图形应用的设计,允许真正的组件编程,Qt是一个全面的C+应用程序开发框架,它包含一个类库,和用于跨平台开发以及国际化的工具,可以开发高性能跨平台客户端,以及服务端的应用程序。QT的语言特性。Qt类库是一个拥有超过400个C+类,同时不断扩展的库。它封装了用于端到端应用程序开发所需要的所有基础结构。优秀的Qt应用程序接口包括成熟的对象模型,内容丰富的集合类,图形用户界面编程与布局设计功能,数据库编程,网络,XML,国际化,Opengl集成等等。Qt语言家是一套用来消除国际化工作流程中所带来障碍的工具。使用QT语言家,开发小组可把应用程序的翻译

40、转换外包给非技术性翻译人员,从而可增大精确度,大大加快本地化处理过程。Qt助手是一个完全可自定义,重新分配的帮助文件或文档浏览器,可与基于Qt的应用程序运行。使用Qt助手,开发小组同样能够很大程度上加快文档的处理过程。使用QT语言编程的优点1. 支持平台广泛QT应用程序接口与工具兼容于所有支持平台,让开发员们掌握一个应用接口,便可执行与平台非相关的应用开发与配置,其支持的平台有:QT/WINDOWS(WINDOWSXP.2000.NT4,ME/98,WIN7等),QT/MAC(MAC OS X)、QT/X11(LINNX,SOLARISHP-UX,IRIX,AIX)等。2.封装多QT对不同平台

41、的专门API进行了专门的封装(文件处理、网络等)。3.面向对象QT具有模块设计和注重软件构件或元素的可重用性的特点。4.构件支持QT提供信号(signal)和槽(slot)概念,这是一种类型安全的方法,它允许回调,并支持对象之间在彼此不知道对方信息的情况下进行合作,这就使得QT非常适合于真正的构件编程。5.友好的联机帮助QT提供了大量的联机参考文档,有超文本HTML方式,也有UNIX帮助手册和补充说明,并且对于初学者,其中的指南将一步步介绍如何进行QT编程。6.便利性由于QT是一种跨平台的GUI工具包,它对编程者隐藏了在处理不同系统时潜在的问题,QT定义了一些类来隐藏在不同操作系统上不同处理方

42、式的系统问题。7.用户自定义使用其他的一些工具包经常会遇到这样的一种情况,没有真正适合需求的组件,生成自定义组件对于用户来说就是一个黑匣子,而在QT中生成用户自定义的组件非常简单,并且易于修改组件的行为。8.国际化QT为本地化应用提供了完全的支持,所有用户界面文本都可以基于消息翻译表被翻译成各国语言,QT还支持双自己16BIT国际字符标准。9.丰富的API函数QT为专业应用提供了大量的函数,在QT的API中包含大约250个C+类,大多数类都是GUI专有的。10.可用户化外观QT支持主题,基于QT的应用程序能够在WINDOWS外观,MOTIF外观,以及其他一些用户化主题之间切换。11.完整的一套

43、组件工具QT编程的基本模块称之为组件,组件式用户界面的组成部分,QT含有用来创建外观的用户界面所需要的所有组件。QT/ Embedded介绍。QT/Embedded为带有轻量级窗口系统的嵌入式设备提供了标准的API。QT/Embedded面向对象的设计思想,使得它能抑制向前支持鼠标、键盘、图形加速卡等附加设备。通过使用QT/Embedded,开发者可以感受到QT/X11、QT/WINDOWS和QT/MAC等不同的版本下使用相同的API编程带来的3.3.2 FTP通信协议文件传输协议(英文:File Transfer Protocol,简称为FTp)是用于在网络上进行文件传输的一套标准协议,它属

44、于网络传输协议的应用层。FTP是一个8位的客户端-服务端协议,能操作任何类型的文件而不需要进一步处理,就像MIME或Unicode一样。但是,FTP有着极高的延时,这意味着,从开始请求到第一次接受需要数据之间的时间会非常长;并且不时的必须执行一些冗长的登录进程。FTP服务一般运行在20和21两个端口。端口20用于在客户端和服务器端之间传输数据流,而端口21用于传输控制流,并且是命令通向FTP服务器的进口。当数据 通过数据流传输时,控制流处于空闲状态。而当控制流,空闲很长时间后,客户端的防火墙会将其会话置为超时,这样当大量数据通过防火墙时,会产生一些问题。此时,虽然文件可以成功的传输,但因为控制会话,会被防火墙断开;传输会产生一些错误。FTP通信协议的作用:(1)促进文件的共享(计算机程序或数据)(2)支持间接或者隐式的

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

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁