(050) FTP通讯软件设计

【摘要】进入信息时代,随着互联网普及,只要接上网络,就能从网上找到庞大的数据资源,其内容包罗万象,可以说几乎任何人都可以在Internet资源中找到自己所需要的信息资源。
  有了网络,使用者不但可以浏览各种各样的信息资源,还能够将自己感兴趣的资源下载到本地机上。由于网络的带宽及各种服务的限制,单纯从页面上下载显得又慢又不可靠,所以就有许多FTP工具提供出来。
  本软件是用DELPHI6.0作为开发工具完成的,系统有着良好的界面,简单易用,系统开发的总体任务是连接FTP服务器,上传/下载文件、对FTP服务器站点的管理、服务器端提供FTP服务、允许远程登录下载服务器上的文件。
  本软件的设计,即从需求分析,软件设计到软件功能实现,都始终遵循软件工程的思想和数据库的设计方法。在本文中采用了大量的图表说明,使文章明确清晰,便与阅读和理解。

【关键词】FTP ,FTP工具软件, DELPHI

【Abstract】Enter the information centuries, along with the Internet universal, so long as connect with the net, you can find out the huge data resources from the Internet, its contents all inclusive, can say almost anyone can find out the information resources which you need in the Internet.
  Had the network, the user can browse various of information resources, can still download resources which you are interested in native from aboard. Because of the bandwidth of the network and the restrict of various service, the simplicity way seem to be slowly and not dependable up and down from the page, so there have many tools of FTP to provide out.
  This software completes with the DELPHI6.0 tools, the system has the good interface, using in brief and easily, the total mission of the system is to link the server of FTP, spreading up/ download documents, to the FTP server the management, server that station order carries to provide the service of FTP and allow the document of the long range logging download service machine.
  The design of this software, namely analytical from the need, the software designs the function to carry out, all following the thought of the software engineering and the design method of the databases always. This text had a great deal of chart elucidation, make the article definitely clear, then with read and comprehend easily.

目 录
摘 要 I
Abstract II

第1章 绪 论 1
1.1 课题背景 1
1.2 网络基本概念 1
1.3 网络概述 2
第2章 Delphi6及相关技术简介 3
2.1 Delphi6简介 3
2.2 FTP协议简介 3
2.2.1 什么是FTP协议? 3
2.2.2 FTP文件传输的主要特点 4
2.2.3 FTP支持的文件传送类型 4
2.2.4 FTP在实现网络传输时提供的3种模式 4
2.3 FTP在Delphi6的中的实现 5
2.4 NMFTP控件的介绍 5
2.4.1 常用属性介绍 5
2.4.2 常用方法介绍 7
2.4.3 常用事件介绍 9
2.5 客户机/服务器模式 11
2.5.1 什么是客户机/服务器 11
2.5.2 如何采用客户机/服务器模式 11
2.6 第三方控件的安装与删除 12
2.6.1 控件的安装 13
2.6.2 控件的删除 13
第3章 系统功能分析及界面设计 14
3.1 系统功能分析 14
3.2 系统主界面设计 16
3.3 站点管理器窗体设计 17
3.4 闪现窗体的设计 18
第4章 系统主要功能实现 19
4.1 闪现窗口的实现要点 19
4.2 主窗体中各模块的实现 20
4.2.1 本地操作的实现要点 20
4.2.2 站点管理器的实现要点 24
4.2.3 FTP服务器上的远程操作实现要点 27
第5章 FTP服务器端设计与应用 29
5.1 常用的FTP端指令集 29
5.2 重要的有关FTP的第三方控件包的介绍 29
5.2.1 常用属性介绍 30
5.2.2 常用方法介绍 31
5.2.3 常用事件介绍 31
5.3 FTP服务器的设计 32
5.3.1 FTP服务器界面设计 32
5.3.2 FTP服务器功能的实现 34
5.4 FTP服务器端应用扩展分析 35
5.4.1 注册自动运行的几种方法 36
5.4.2 防止程序多次重复运行 38
5.4.3 任务管理器中的隐形 39
5.4.4 可执行文件的藏匿 41
结 论 43
致 谢 44
参 考 文 献 45
附录1 47
附录2 50
附录3 54

第1章 绪 论
1.1 课题背景
  现代科技给我们带来了翻天覆地的变化,互联网就是这诸多变化之一,而且它无时不刻地包围着你。可以这样说,21世纪是互联网的世纪。互联网是人类科技发展史中成长最快的新鲜事物,从诞生到高度发展仅仅用了二十几年,而未来的发展前景更是一片光明。每个人可能者已经感觉到了它的发展,从大大小小的网络公司到各种各样的网上商店、书店、网吧、网上银行等,就连电影院也都搬到了网上你可以足不出户的欣赏美国大片。
  早在20世纪90年代初,Internet和World Wide Web(简称WWW)已经被大家熟知。最近几年,Internet的发展更是神速,它已经深深触及到我们的生活和工作的方方面面。随着许多新兴技术在Internet中的推广应用,使用它的自身发展更日趋完善,它为用户也带来了越来多的实惠和便利。毫不夸张地说,无论你在世界上的哪个角落,只要通过互联网,你就可以同亲人朋友、甚至是陌生人相互交流,而且形式多样。互发邮件、交换文件、彼此聊天这已经是很平常了,而现在随着网络、通信技术的相结合,已经出现了可视电话、网络家电、电子商务等。网络用户可以通过大大小小的各类网站或主页。他们已经越来越离不开网络,而且已经把企业网络建设纳入了未来企业发展最重要的环节。是互联网最大的凝聚力所在,它是一个包罗万象的信息服务系统。
1.2 网络基本概念
  互联网通常指的是由很多计算机网络(包括局域网、广域网等)相互连接而成的一个总网络,它无论在功能上还是在逻辑上都是一个巨型网络。无论Internet、因特网、国际互联网、互联网、全球互联网、交互网、国际电脑网络、国际计算机网络。其实它们都是由美国阿帕网(ARPANET)发展而成的。主要采用的通信协议都是TCP/IP协议。
  Internet也就是网络中心的网络。那什么又是网络呢?网络与Internet又有什么关系呢?
1.3 网络概述
  网络的定义从概念上说,就是由两台或两台以上计算机通过一定的连接和统一的通信协议,最终实现彼此之间相互通信的实体。网络互联可以采用网间连接器互连和通过互联网两种方式实现网络互联。从定义看,它必须是由多个电脑通过连接设备物理连接而成,然后通过定制的协议方法才能实现多种资源、服务、信息共享。这种通信包括了发送E-mail和传真,交换一个或多个文件等。而Internet是多个计算机网络的集合,是一个网中网,是遍布全球的联络各个计算机平台的总连接,这些网中网的计算机少则两三台,多的则拥有数千台,是名副其实的千万信息资源的汇合。从本质上讲,Internet是一个媒介,是一个沟通你我他,沟通全世界的重要手段,只不过这种沟通连接世界上不同种类型的计算机实现的,通过这种连接,我们就能和世界交流,和世界通信,所以它又是一个交换各类数据的通信媒介。从Internet提供的无限资源和对人类的发展推动作用这方面来理解,Internet是正在迅猛发展的全球数字化数据库,这个数据库是建立在高度灵活的通信技术之上的,正是有了各种成熟的通信技术和网络连接的简单性、灵活性和共享信息的便利性才促成了Internet的飞速发展。

第2章 Delphi6及相关技术简介
2.1 Delphi6简介
  Delphi是美国Borland 公司推出的功能强大的应用程序开发工具。它具有功能强大、运行速度快、易于学习和使用以及开发效率高等特点。它是可视化应用编程开发环境、可重用性面向对象编程语言、快速编译器和数据库的完美结合。
  Delphi6发布于2001年6月。新版本的Delphi6开发功能更加强大,除了能够有效帮助开发者个人或其开发团队快速建立Windows应用程序,快速简化Windows与浏览器客户、Web服务器、中间件以及后台数据库系统(XML|SOAP\WSDL\XSL等)的开发工具,同时也支持基于Web服务的Microsoft.NET和Sun ONE,而且提供给Web开发者需要的可伸缩性与可靠性。新的Delphi6框架中还包括了BizSnap\WebSnap和DataSnap,用户可以用它开发支持Web服务特性的服务器端和客户端应用,而这一切者是通过一套高度集成的可视化开发工具、先进的编译技术和可重用的组件完成的。特别是在电子商务愈加流行的今天,通过Delphi 6,任何企业都能很快地转移到未来基于Web服务的电子商务应用程序开发上,而不用丢弃以往的开发方式、技巧和源代码。可见,要创建一流的Web应用程序,Delphi 6无疑是目前的最佳选择之一。
2.2 FTP协议简介
2.2.1 什么是FTP协议?
  FTP协议即文件传输协议(File Transfer Protocol),它是TCP/IP协议族的应用协议之一,是Internet上使用非常广泛的一种通信协议。它是由支持Internet文件传输的各种规则所组成的集合,这些规则使Internet用户可以把文件从一个主机拷贝到别一个主机上。通过TCP/IP连接在一起的任何两台计算机,如果安装了FTP和服务器,就可以通过FTP服务进行相互之间的文件传输,因而为用户提供了极大的方便和收益。FTP通常也表示用户执行这个协议所使用的应用程序。
  FTP和其他的Internet服务一样,亦采用客户机/服务器方式。它要求用户用本地的客户端与服务器建立连接,然后才能从服务器上获取文件(Download),或向服务器发送文件(Upload)。使用方法很简单;启动FTP程序先与主机连接,然后向远程主机发出传输命令,远程主机给予响应,执行正确命令。
  目前Windows操作系统最常用的FTP软件有WS-FTP,CUTEFTPT等。FTP有一个根本的限制,那就是:如果用户未被某一服务器授权,未取得User Name和Password就不能访问该主机,实际上是不能远程登陆(Remote Login)进入该主机。而Anonymous FTP(匿名FTP)则取消了这种限制。
2.2.2 FTP文件传输的主要特点
  用户有合法的用户名和口令的前提下才与服务器建立连接。通过客户端软件,用户可以在权限允许的范围内进行文件更名、删除、或传送操作。
2.2.3 FTP支持的文件传送类型
  FTP支持的文件传送类型,它们是ASCII和二进制映像。
(1)文本文件(ASCII):在传送文本文件时应该使用ASCII。在ASCII模式中,将执行网络标准字符转换。例如,行尾的字符在必要时根据目标操作系统进行转换。
(2)二进制(Binary)文件的传输可执行文件、图像和压缩文件等时应该使用二进制。在二进制模式中,一个字节接一个字节地移动文件。
2.2.4 FTP在实现网络传输时提供的3种模式
(1)流模式(Stream mode)。在这种模式下,FTP将文件作为一系列字节进行处理,适用于任何数据类型。FTP针对不同的文件结构指明文件的开始和结尾。
(2)块模式(Block mode)。在这种模式下,FTP将文件作为大量块传输,每一个块前都有一个报头,包含有块的大小和描述符。所谓的描述符是用来确定该块在整个文件中的位置,指明该块是不是最后一块,同时,描述符还有一个位来描述数据是否可靠。
(3)压缩模式(Compressed mode)。这种模式主要用于提高传输的效率,能有效利用网络带宽。
2.3 FTP在Delphi6的中的实现
  在Delphi6.0中实现FTP的3种方法
  要在Delphi6.0中实现FTP的下载功能,有以下3种方法:
(1)使用Delphi6.0的FastNet组件页中的TNMFTP组件来实现文件下载。
(2)使用Active X提供的Microsoft Internet Transfer组件。
(3)使用Delphi6.0提供的WinInet单元,其实质是系统的API函数。
2.4 NMFTP控件的介绍
  NMFTP控件位于控件面板的FastNet单元中,主要用于封装FTP协议及其常用处理单元。Delphi6控件面板中的FastNet页面,第5个控件就是NMFTP。

2.4.1 常用属性介绍
  单击NMFTP控件后,会显示Object Inspector对话框,同时默认显示多数Properties(属性)的设置初始值,它主要是提供一些常用、便利的控件属性设置,用于使该控件正常的动作。
  NMFTP控件的属性面板中主要包括下面一些属性:
◇ About属性:主要是一些本控件的版权信息,主要用于知道本控件的一些注册信息,如何升级和怎样得到技术支持等。
◇ FirewallType属性:主要用于设置防火墙类型。防火墙类型主要有三种FTUser、FtSite、FtOpen。默认值是FTUser。
◇ FWAuthenticate属性:用于设置在通过防火墙时是否需要身份认证。默认值是False,当其值为True时,要求身份认证;反之则不需要。
◇ FWPassword属性:用于设置在通过防火墙时登录所需的用户口令。
◇FWUserID属性:用于用于设置在通过防火墙时登录所需的用户ID。
◇ Host属性:主要用来指明本程序所要连接的远程主机的名称或IP地址。
◇ Name属性:NMFTP控件的类实体名字。
◇ ParseList属性:用于决定是否把内送的文档列表罗列入属性FTPDirectoryList中;反之则不,如果需要处理文档列表,只能在OnListItem事件中进行。
◇Passive属性:用于决定怎样进行FTP数据连接。默认值是False,当其值为False时,将以Port方法连接;当值为True时则以PASV方法连接。后者多用于Proxy中。
◇ Password属性:当用户向FTP服务器按指定用户ID登录时用于设置指定的用户口令。
◇ Port属性:主要用来指明本程序所要连接的远程主机的端口号。在有些网络服务中也用来指定远端服务软件正在监听的端口号。
◇ Proxy属性:主要用来指明本程序所要连接的代理服务器的名称或IP地址。如果该服务并不需要代理服务器设为空即可。
◇ProxyPort属性:主要用来指明本程序所要连接的代理服务器使用的端口号。
◇ ReporLevel属性:主要用来当Status属性设置和OnStatus事件触发时控制报告的数目等级。
◇ Tag属性:工具型辅助属性,主要用于存储附加的整型数据。
◇TimeOut属性:即超时属性用于定义在Socket连接过程中用于触发异常的时间单位是毫秒。当该值被设为0时,将不会产生异常。
◇ UserID属性:当用户向FTP服务器请求建立连接时输入的指定用户ID。
◇ Vendor属性:用于指明所要连接的FTP服务器提供的是何种模式,这就能够使应用程序在进行文档列表时能够采取适当的方式,如果模式不清楚,默认值将为用户自动检测。默认值是NMOS_AUTO,常用的有NMOS_UNIX、NMOS_WINDOWS、NMOS_VM、NMOS_BULL、NMOS_MAC、NMOS_TOPS20、NMOS_VMS、NMOS_OS2、NMOS_MVS_IBM、NMOS_MVS_INTERLINK、NMOS_OTHER、NMOS_AUTO、NMOS_NT、NMOS_TANDEM、NMOS_AS400、NMOS_OS9、NMOS_NETWARE等。

2.4.2 常用方法介绍 
 NMFTP控件在封装了多数属性、事件的同时、也为用户提供了更多应用处理单元,这为程序员更好的控制FTP协议提供了锐利的武器。下面列出了我们在程序开发当中常用的一些方法。
◇Allocate方法:用于在远程FTP服务器上分配空间来储存文件。用法如下:
◇ ChangeDir方法:用于更换远程FTP服务器上的工作目录。
◇ Delete方法:用于删除远程FTP服务器上的指定文件。
◇ DoCommand方法:用于向远程FTP服务器上发送各种指令,法FTP服务器端的指令不规则时,这种方法最有用。
◇ Download方法:用于从远程FTP服务器向本地计算机下载指定文件。
◇ DownloadRestore方法:用于从远程FTP服务器向本地计算机下载指定文件。该文件以前曾经下载过,但求未完成。
◇ List方法:用于把远程FTP服务器当前工作目录中的目录和文件形成列表,当ParseList属性为True时,在执行List方法时内送的文档列表将被罗列入属性FTPDirectoryList中包括名称、大小、日期、属性;反之则不,如果需要处理文档列表时只能在OnListItem事件中进行。List方法运行成功将触发OnSuccess事件;失败将触发OnFailue事件。
◇MakeDirector方法:用于在远程FTP服务器当前工作目录中建立新的目录。
◇ Mode方法:用于在远程FTP服务器和本地计算机之间传输文件时,改变传输模式。
◇ Nlist方法:用于从远程FTP服务器当前目录中获取所有目录和文件的名字。如果需要处理文档列表只能在OnListItem事件中进行。NList方法运行成功将触发OnSuccess事件;失败将触发OnFailue事件。
◇ Reinitialize方法:用于初始化当前用户和FTP服务器建立起的有效连接,当它执行时,将把连接置于无用的状态,要求重新输入登录帐号和口令。只有再次登录正确才能政党继续工作。
◇RemoveDir方法:用于在远程FTP服务器当前工作目录中删除指定的目录。
◇ Rename方法:用于在远程FTP服务器当前工作目录更名指定的文件。
◇ Upload方法:用于从本地计算机向远程FTP服务器上的当前工作目录上传指定文件。
◇ UploadAppend方法:用于从本地计算机向远程FTP服务器上的当前工作目录上传指定文件。当该文件已经存在时,则追加在该文件的尾部。
◇ Uploadrestore方法:用于从本地计算机向远程FTP服务器上的当前工作目录上传指定文件。该文件曾经上传达室过但不完全。
◇ UploadUnique方法:用于从本地计算机向远程FTP服务器上的当前工作目录上传指定文件。上传的文件名字将和在本地时是一样的,如果远程FTP服务器存在同名文件时,该文件在上传时将被改名。
2.4.3 常用事件介绍
 单击NMFTP控件后,会显示Object Inspector窗口,在Events页面上会显示出NMFTP控件常用的事件。它主要是提供一些常用、便利的事件控制来响应各种消息。
 下面列出了我们在程序开发当中常用的一些事件:
◇OnConnect事件:当用户成功登录到服务器时触发该事件。
◇ OnConnectionFailed事件: 当用户登录到服务器失败时触发该事件。
◇ OnAuthenticationFailed事件:当用户使用非法的用户名和密码登录服务器时触发该事件,将更改Handled参数。
◇ OnConnectionRequired事件:在调用TNMFTP组件的方法时,如果检测到没有连接到FTP服务器,就将触发该事件;处理这个事件的句柄时,应当调用Connect方法来连接FTP服务器。
◇ OnDisconnect事件:当断开与服务器的连接时所触发的事件。
◇ OnInvalidHost事件:当在Host属性所批定的主机名非法时触发该事件。
◇ OnListItem事件:程序执行List命令时每检索到一个文件都会激发这个事件。
◇ OnPacketRecvd事件:在文件下载过程中,收到一个完整的数据块就会触发这个事件,通常的用法是用这个句柄来显示下载的进度。
◇ OnpacketSent事件:在文件上载过程中,每发送一个完整的数据块就会触发这个事件,通常的用法是用这个返回的句柄来显示上载的进度。
◇Onstatus事件:当FTP服务响应命令返回状态信息时将触发这个事件。
◇OnSuccess事件: OnSuccess事件是在服务器成功执行命令后所触发的事件。
◇ OnError事件:如果在连接或传输数据的过程中出错,就将自动触发这个事件,它属于TOnErrorEvent类型。
◇ OnFailure事件:这个事件是在TNMFTP组件调用某个方法失败时触发的事件。
◇ OnTransactionStart事件:当程序调用各种方法开始传输数据时所触发的事件。
◇ OnTransactionStop事件:当程序调用各种方法传达室输数据并且传输完成后所触发的事件。
2.5 客户机/服务器模式
 在数据处理领域中,客户机/服务器(Client/Server,简称C/S)体系结构受到极关注,C/S已经成为网络计算机的主要方式。当然基于TCP/IP的网络通信主要模式也是客户机/服务器方式。
2.5.1 什么是客户机/服务器
 客户机/服务器并非是一种物理结构,也就是说,客户机、服务器并非一定是两台计算机,它们也可能位于同一台计算机上,甚至客户机和服务器的地位可以互换,某一时刻处于客户机地位的在另一时刻可能充当服务器的角色。所以客户机/服务器的理解应是应用程序之间相互作用的一种模型。
 客户机程序(进程)发送请求给服务器程序(进程),服务器进程对客户机的请求做出响应,并产生结果。一般来说,服务器进程完成一些比较通用而特殊的处理,如进行一些复杂的计算,大型数据库的查询等等。而客户机进程则由于将上述一些特殊的应用交由服务器进程处理,因而可以专心于其它工作,如事务处理、人机交互等等。显然,客户机/服务器模式下,客户机为主动方,即请求方;而服务器为被动方,接受请求方。
 网络环境是客户机/服务器模式的主要应用环境。计算机组网的目的是为了资源共享,在网络中存在不同功能的设备,一般而言,作为服务器的计算机拥有比较丰富的资源,如高速CPU、大容量硬盘、高速打印机、大型数据库等等。而客户机一般拥有相对比较少的资源,这时,客户机利用TCP/IP应用程序来访问服务器资源,而服务器的TCP/IP应用程序则可以将客户机访问的结果回送给客户机。这就是基于客户机/服务器结构的TCP/IP应用。
2.5.2 如何采用客户机/服务器模式
◇ 客户机一方,通信应用程序功能如下:
1. 打开通信信道(申请套接字),并连接到服务器在主机的保留端口,该端口对应服务器的通信进程。
2. 向服务器发出请求报文,等待接收应答。
3. 从服务器方收到最终应答结果,或在不再请求时关闭信道并终止客户机进程。
◇ 服务器一方,通信应用程序动作如下:
1.打开通信信道(申请套接字),通知本地主机在某一保留端口接收客户机请求。
2.等待客户机请求到达指定端口。
3.接收到请求,启动一新进程处理用户机请求,同时释放旧进程以响应新的客户机请求,一旦服务完成,关闭新进程与客户机的通信链路。
4.继续等待客户机请求。
5.如果不想响应客户机请求,关闭服务器进程。
 由此看出,在客户机/服务器模式应用程序中的服务器进程必须先于客户机进程启动,直到客户的响应结束或强迫终止。
2.6 第三方控件的安装与删除
 众所周知,Delphi提供了大量的组件,使用这些组件基本上已能满足我们的编程需求。但是在对于有特定要求的程序,仅仅使用Delphi自带的组件就无法适应了。另外,Delphi自带的一些组件功能比较简单,很难满足我们一些特定的要求。值得庆幸的是,现在有很多的第三方组件,这些组件功能强劲,而且覆盖了编程的方方面面,极大的方便了我们。使用这些第三方组件往往达到事半功倍的效果,大大提高编程的效率。同时还能使我们的程序更漂亮、更专业、更强大。所以第三组件是我们使用Delphi编程一大法宝。
 第三方组件往往是Delphi自带组件的扩展,是在Delphi自带组件的基础上加强功能,并进行功能细化和专业化。例如,有些第三方组件把按钮、标签细化为很多种,每一种实现一种特定的功能。另外一些第三组件是Delphi中没有的,这些组件往往是根据编程时常遇到的需求,将一些常用的方法、函数以及API集成到这些组件中,编程时就不需要编写这些程序了。如TrayIcon、Specomm等。这些组件往往都特别有用。下面就简单介绍一下三方控件在Delphi中的安装和删除方法
2.6.1 控件的安装
1、对于单个控件,Componet-->install component..-->PAS或DCU文件-->install;
2、对于带*.dpk文件的控件包,File-->Open(下拉列表框中选*.dpk)-->install即可;
3、对于带*.bpl文件的控件包,Install Packages-->Add-->bpl文件名即可;
4、如果以上Install按钮为失效的话,试试Compile按钮;
5、是run time lib则在option下的packages下的runtimepackes加之。
 安装时常见问题及解决方案:如果编译时提示文件找不到的话,一般是控件的安装目录不在Delphi的Lib目录中,有两种方法可以解决:
1、反安装的源文件拷入到Delphi的Lib目录下;
2、或者Tools-->Environment Options中把控件源代码路径加入到Delphi的Lib目录中即可。
 注意:所安装的控件是否与你所用的Delphi版本相适应。
2.6.2 控件的删除
 在Component/Install Packages中删除。 选Component/configure Palette…有pages和components两个区域双击components区域,选中要删除得控件,下面有得Delete按钮但系统提供的控件只能Hide,不能delete。打开控件所在的包文件(*.dpk),从中删除控件那个文件,再重新编译该包即可如果是整个控件包都要删除的话,project->Option->Packages,删掉那个packages,ok~

第3章 系统功能分析及界面设计
3.1 系统功能分析
系统开发的总体任务是连接FTP服务器,上传/下载文件、对FTP服务器站点的管理、服务器端提供FTP服务、允许远程登录下载服务器上的文件。功能层次图如图3-1所示,FTP服务器端数据流图,如图3-2所示


FTP客户端数据流图,如图3-3所示... ...       ... ...
 
... ...       ... ...
 
【论文说明】该论文包含功能层次图、数据流图、操作过程设置图、效果图和程序,Word格式,文件大小870K,字数2.4万,按计算机毕业论文格式要求书写,适用于计算机类各专业!

返回论文

 

关于本站  |   联系我们  |   获取方式  |   常见问题  |   网站地图
版权所有:计算机论文网